集成电路综合课程设计

合集下载

应用霍尔集成传感器测量转速电路设计 黄河科技学院课程设计9

应用霍尔集成传感器测量转速电路设计 黄河科技学院课程设计9

应用霍尔集成传感器测量转速电路设计摘要在工程实践中,经常碰到需要测量转速的场合,而单片机作为一款性价比很高的微控制器在测速系统有着广泛的应用。

首先,本文叙述了单片机测量转速的系统构成及转速测量的几种常用方法。

其次,介绍了一种基于89C51单片机的电动机测速系统,该系统利用霍尔传感器产生脉冲信号,通过定时算法程序,将转速结果实时显示出来。

最后,对测量指标进行了分析、比较并提出改进方案。

关键词:单片机,转速测量,霍尔传感器目录1 绪论 (1)1.1课题的背景 (1)1.2课题的目的及意义 (1)1.3设计思路与内容 (2)2 基于单片机的转速测量原理 (3)2.1转速的测量原理 (3)2.2转速的测量方法 (4)2.2.1测频法“M法” (4)2.2.2测周期法“T法” (4)2.2.3测频测周法M/T法 (5)2.3误差和精度分析 (6)2.3.1“M法”测量误差分析 (6)2.3.2“T法”测量误差分析 (7)2.3.3“M/T法”测量误差分析 (7)3 霍尔传感器测转速系统的单元电路介绍 (8)3.1单片机的介绍 (8)3.2霍尔传感器选型 (10)3.3开关霍尔传感器的性能分析 (10)3.4系统显示电路介绍 (10)3.4.1 74HC595的介绍 (10)3.4.2 数码管介绍 (11)4 电路的硬件设计 (12)4.1设计的方框图 (12)4.2单元电路的设计 (13)4.2.1单片机主控电路设计 (13)4.2.2脉冲产生电路设计 (14)4.2.3按键电路设计 (15)4.2.3数码管结构和显示原理 (15)4.3电路的整机原理图的设计(分析工作原理) (16)5 软件设计 (17)5.1单片机转速程序设计思路及过程 (17)5.1.1单片机程序设计思路 (17)5.1.2单片机转速计算程序 (18)5.1.3二-十进制转换程序 (19)5.2程序设计 (21)致谢 ...................................................................................................... 错误!未定义书签。

《集成电路设计实践》第一讲_A

《集成电路设计实践》第一讲_A

课程进度安排(续二)
第9周:Cell-based设计方法及工具 3.1 Cell-based设计流程介绍 3.2 Verilog简介 第10周: 3.3 电路综合 第11周: 3.4 布局布线 3.5 DRC与LVS
课程进度安排(续三)
第12周:项目设计——CYCLIC ADC的设计 4.1 CYCLIC ADC原理 4.2 CYCLIC ADC电路设计 4.3 版图设计考虑 4.4 ADC性能仿真 4.5 设计报告要求 第13周:深亚微米工艺下的集成电路设计方法 5.1 按比例缩小原理 5.2 短沟道效应 5.3 深亚微米工艺下的设计讨论 5.4 SOC设计 第14~16周:项目设计与辅导
课程进度安排(续一)
第5周:Full-custom设计方法及工具 2.1 Full-custom设计流程介绍 2.2 原理图输入与电路网表导出 第6周: 2.3 HSPICE电路仿真 第7周: 2.4 版图编辑 第8周: 2.5 设计规则检查(DRC)与版图电路比对(LVS) 2.6 版图参数提取和后仿真 2.7 分层设计讨论
一. 集成电路设计基础
1.2 版图的基本概念
版图结构
集成电路加工的平面工艺
制 版 加 工
芯片的剖面结构
从平面工艺到立体结 构,需多层掩膜版,故 构,需多层掩膜版,故 版图是分层次的,由多 层图形叠加而成!
一个简单的例子
Vdd 版 图 in metal1
N+ 剖 N-阱 面 N-阱 图 P-substrate N+ P+
逆向电路提取 逆向电路提取
解剖照相 拼图 电路提取 分析与仿真
集成电路分类
集 成 电 路 按用途 数 字 集 成 电 路 模 拟 集 成 电 路 数 模 混 合 集 成 电 路 按集成规模 ULSI ULSI GLSI GLSI 大 规 模 超 大 规 模 集 成 电 路 按制作工艺 GaAs GaAs MOS MOS Bipolar Bipolar 集 成 电 路 集 成 电 路 按生产形式 标 专 准 用 通 集 用 成 集 电 成 路 电 路 ASIC ASIC

南邮集成电路与CAD实验报告4_张长春

南邮集成电路与CAD实验报告4_张长春

《集成电路与CAD》课程实验第 4 次实验报告实验名称:数字集成电路设计实验目的:1,掌握模拟集成电路的基本设计流程2,掌握CADEDNCE基本使用3,学习物理层版图的设计基础实验原理:1,布图规划:在物理实施过程中,从数据输入到时钟树综合之前,大体可以分为:布图规划、电源规划和布局。

布局又称为标准单元放置,包括对I/O单元的排序放置、模块(block)放置和标准单元的规划。

标准单元通常占50%以上芯片面积。

布图规划开始时,要准备好各种基本设计数据和相应的物理库、时序库文件,并输入到布图规划的工具环境中来,为其后的布局和布线做好准备。

2,电源规划电源规划是给整个芯片的供电设计出一个均匀的网络。

电源网络设置、数字与模拟混合供电、单电源与多电源供电电源网络设置。

其中电源环线(power ring)和电源条线(power stripe)的设置为主要工作。

3,布局I/O单元和模块的布放都属于布局的范畴,由于它们已经在布图规划时完成,因此布局的剩余任务主要是对标准单元的布局。

实验内容与结果分析:1,前端设计16位计数器module count(out,clk,rst); //源程序input clk,rst; //指定输入output[3:0] out; //指定输出reg[3:0] out; //out为4位reg型initial out=4'd0; //初始,输出为0always @(posedge clk or negedge rst) //always块beginif(!rst) out=4'd0; //如果rst信号为0输出为0 else //否则开始下面beginout=out+4'd1; //out=out+1if(out==4'd16) out=4'd0; 如果输出为16,归0endendendmodule2,后端设计(1)设计输入:导入前端设计文件(2)布线窗口设定:整体规划版图,如IO口位置,关键路径(3)电源环设定,如下图,设定电源环位置,宽度,长度(3)放置标准单元:将器件放置在版图上(4)多次布线优化(5)时钟树综合,上色最后结果如下:三,实验分析。

电子电路课程设计课程教学大纲.doc

电子电路课程设计课程教学大纲.doc

电子电路课程设计Electronic Circuit Course Design一、课程性质本课程是通信工程、电子信息工程、电子科学与技术等专业在三年级上学期开设的一门具有理论性、工程技术性、实践性和综合性的集中性实践教学环节。

学生在修完模拟电子线路、数字电路与逻辑设计、电工电子实验等相关课程,具备一定的电子设计理论和实验基础后,通过大型课题和集中时间实践的学习方式,提高实际工程设计能力,加强分析问题、解决问题、应用新知识的能力和创新精神。

二、课程目标(一)课程目标本实践课程的教学目标是:通过讲授采用可编程器件实现的综合性电子电路或由中小规模集成电路实现的小型电子系统的设计方法,通过完成大型课题,学生在技术指标分析、方案拟定、资料查找、电路设计、电路装配、参数调测、故障处理、实验报告撰写等各个环节得到较全面的训练,初步掌握综合性或小型电子系统的设计与实验能力,进一步提高对电子电路工程性和技术性的认识,培养良好的科技素质。

目标1 通过查找大量相关资料及产品调研,充分理解课题基本含义,分析电路各项设计指标要求;能够基于电子电路相关基础理论知识和实验基本技能提出多种设计方案,分析方案的可行性并选择最适宜的方案。

培养学生科学精神、探索创新精神。

目标2 启迪学生树立节能减排的绿色环保理念,设计前期会运用ISE 等EDA 工具实现大型综合性电子电路设计仿真或在基于中小规模集成电路实现小型电子系统设计中用Multisim 等仿真软件仿真电路电学特性,熟悉综合性系统设计流程。

目标3 基于电子电路装配及调测的基本理论,启发学生求真务实、精益求精,搭建硬件电路,熟练使用电子仪表调测电路指标。

根据调测过程中的各项指标的测试结果修正设计方案,最终得到满足指标要求的电路设计。

在调测过程中,加深理解电子电路设计的技术性和工程性、电子仪器仪表的局限性。

目标4通过课题实现后的讨论和总结,比较不同方案的优缺点,加深理解电子电路理论。

集成电路课程心得体会(2篇)

集成电路课程心得体会(2篇)

第1篇随着科技的飞速发展,集成电路作为现代电子技术的核心,其重要性不言而喻。

在过去的一年里,我有幸学习了集成电路这门课程,通过系统的学习和实践,我对集成电路有了更为深入的了解,以下是我对这门课程的心得体会。

一、课程概述集成电路课程是一门理论与实践相结合的课程,主要介绍了集成电路的基本概念、设计方法、制造工艺以及应用领域。

课程内容涵盖了从集成电路的基础理论到具体的设计实例,使我全面了解了集成电路的整个生命周期。

二、课程学习心得1. 基本概念的理解在学习集成电路课程的过程中,我对基本概念的理解有了很大的提升。

例如,集成电路的基本结构、晶体管的原理、电路的组成等。

这些基本概念是后续学习和设计的基础,只有对这些概念有深入的理解,才能在后续的学习中游刃有余。

2. 设计方法的掌握集成电路设计方法主要包括模拟电路设计、数字电路设计以及混合信号电路设计。

在学习过程中,我通过大量的实例分析和实践操作,掌握了这些设计方法的基本原理和技巧。

例如,模拟电路设计中的运算放大器设计、数字电路设计中的组合逻辑和时序逻辑设计等。

3. 制造工艺的了解集成电路制造工艺是课程中的重要内容之一。

通过学习,我了解了集成电路制造的基本流程,包括硅片制备、光刻、蚀刻、离子注入、化学气相沉积等。

这些工艺对于集成电路的性能和可靠性至关重要,掌握这些工艺对于成为一名优秀的集成电路设计师具有重要意义。

4. 应用领域的拓展集成电路应用领域广泛,包括通信、消费电子、医疗、汽车、工业控制等。

在学习过程中,我了解了不同领域对集成电路的需求和特点,为今后从事相关工作打下了基础。

5. 实践能力的提高集成电路课程注重实践操作,通过实验和课程设计,我提高了自己的动手能力。

在实验过程中,我学会了使用各种实验设备,如电子显微镜、半导体测试仪等,掌握了实验技能。

在课程设计中,我独立完成了一个简单的数字电路设计,这对我今后从事集成电路设计工作具有重要意义。

三、课程收获与感悟1. 提升了自己的综合素质通过学习集成电路课程,我在理论知识、实践能力和综合素质方面都有了很大的提升。

集成电路设计与集成系统专业本科人才培养方案

集成电路设计与集成系统专业本科人才培养方案

集成电路设计与集成系统专业本科⼈才培养⽅案集成电路设计与集成系统专业本科⼈才培养⽅案⼀、专业代码与名称专业代码:080710T专业名称:集成电路设计与集成系统( Design of Integrated Circuit and Integrated System)⼆、学制与学位修业年限:四年授予学位:⼯学学⼠Bachelor of Engineering三、培养⽬标本专业旨在培养掌握集成电路设计与集成系统专业所必需的基础知识、基本原理和实际技能,专业能⼒强、综合素质⾼、具有国际视野和可持续发展能⼒的德、智、体全⾯发展的集成电路设计与集成系统⾼级专门⼈才。

本专业毕业⽣能够从事电⼦系统开发、芯⽚设计及与此相关的科研和管理⼯作。

四、毕业要求本专业以培养符合产业需求和创新未来的集成电路⼯程师后备⼈才为⽬标,通过知识、能⼒和素质多⽅⾯综合培养,使得本专业毕业⽣具备如下的知识、能⼒与素质。

1.⼈⽂素养具有远⼤的理想和⼈⽣⽬标,树⽴正确的⼈⽣观、价值观,⼈⽂知识较丰富;具有良好的思想品德、社会公德和职业道德,⼈格优良、⼼胸宽⼴、⼼态阳光、诚信重责,能正确认识科学技术对客观世界和社会发展的积极影响,具有运⽤科学技术为国家建设、⼈类社会发展服务的责任感和奉献精神。

2.专业能⼒通过理论教学、课程设计、综合课程实验、创新项⽬、⼯程实践研究和⼯程实践训练等多形式的培养,使学⽣具备扎实的基础知识和专业理论知识,能综合应⽤专业知识分析问题、解决问题, 动⼿能⼒强,掌握较为丰富的集成电路综合设计技能,具有良好的专业技术交流、团队协作、项⽬管理等实践经验。

能够跟踪本领域最新技术发展趋势,具备收集、分析、判断、选择国内外相关技术信息的能⼒。

3.创新能⼒以学⽣创新能⼒培养为⽬标,以研究性教学和创新实践平台为载体,通过综合导师制、创新基⾦、学⽣创新创业中⼼、科技创新创业活动等多种形式,将学⽣培养成具有创新意识和竞争意识的创新型集成电路⼯程⼈才。

CMOS模拟集成电路设计


缺勤1/3总课时,成绩评定为不及格!
课时分配
❖ 第一讲 集成电路介绍(3课时) ❖ 第二讲 CMOS技术与器件模型(3课时) ❖ 第三讲 CMOS子电路与放大器(3课时) ❖ 第四讲 Smart Spice软件介绍(6课时) ❖ 第五讲 NMOS与PMOS的仿真(6课时) ❖ 第六讲 CMOS反相放大器的设计(18课时) ❖ 复习考核(6课时)
作为 配套重点,较好地解决了彩电集成电路的国产化;
集成电路的特点及发展
2、集成电路的发展 ⑶我国集成电路发展历史 1990年-2000年:以908工程、909工程为重点,以 CAD为突破口,抓好科技攻关和北方科研开发基地的 建设,为信息产业服务,集成电路行业取得了新的发 展。
集成电路的特点及发展
集成电路的封装
4、COB (chip on board) 板上芯片封装,是裸芯片贴装技术之一,半导体芯片 交接贴装在印刷线路板上,芯片与 基 板的电气连接用 引线缝合方法实现,芯片与基板的电气连接用引线缝 合方法实现,并用 树脂覆 盖以确保可靠性。 5、LCC (Leadless chip carrier) 无引脚芯片载体。指陶瓷基板的四个侧面只有电极接 触而无引脚的表面贴装型封装。是 高 速和高频IC 用封
集成电路的特点及发展
2、集成电路的发展 ⑵世界集成电路发展历史 1989年:1Mb DRAM进入市场; 1989年:486微处理器推出,25MHz,1μm工艺,后 来50MHz芯片采用 0.8μm工艺; 1992年:64M位随机存储器问世; 1993年:66MHz奔腾处理器推出,采用0.6μm工艺; 1995年:Pentium Pro, 133MHz,0.6-0.35μm工艺; 1997年:300MHz奔腾Ⅱ问世,采用0.25μm工艺;

sopc课程设计

SoPC课程设计(报告)题目:液晶控制显示器学院:电子工程学院系部:微电子学系专业:集成电路设计与集成系统班级: 1002 学生姓名:曹松松指导教师:曾泽沧起止时间: 2013年6月17日——2013年6月28日目录1 课程设计要求 (2)基本要求 (2)2 实验使用平台 (2)3 题目:选题2 (2)4 课程设计总结 (5)5 附件 (5)1课程设计要求基本要求课程设计要求所有题目采用Quartus II 工具提供的图形输入或者VerilogHDL语言输入方式作为电路设计工具,在NiosII上采用C语言实现编程,自定向下正向设计方法,先设计硬件系统,再进行软件编程,能够生成正确的FPGA下载代码和NiosII执行的软件代码。

硬件功能仿真和时序仿真采用第三方工具(建议为:modelsim),综合与布局布线工具为:Quartus II,SOPC Builder建立软件运行环境,具体要求为:1)根据课设题目,进行总体设计方案(10分);2)硬件电路顶层设计、模块划分、引脚定义(10分);3)电路设计及NiosII设计,提交电路设计源代码或电路图(10分);4)综合与布局布线,提交综合与布局布线报告(10分);5)FPGA下载代码和引脚分布(10分);6)软件总体设计及画出流程图(10分);7)程序设计,提交程序代码(10分);8)程序编译下载及仿真调试(10分)。

2实验使用平台实验平台使用Altera的DE2开发板,开发工具使用Altera的Quartus II和Nios II IDE。

3 题目:选题2在字符型液晶显示器上移动显示“XIAN UNIVERSITY POST AND TELECOMMUNICATIONS YOUR NAME 2013-6”,要求FPGA 设计硬件,内嵌NiosII,液晶显示采用软件实现。

1)根据课设题目,进行总体设计方案;(10分)此次sopc课程设计选题2,题目相对比较简单。

集成电路设计与集成系统专业培养方案


设计一个综合型数字系统,在实验调试的基础上,利用 PLD 技术进行系统集成,提高综合应用系统的
设计与调试能力。
7.FPGA 课 程 设 计 : 第六学期 2 周。运 用 所 学 的 FPGA 电 路 原 理 和 Verilog-HDL 程 序 设 计 知
识 , 设计一个综合型的数字系统。在基本实验调试的基础上,利用在线可编程技术进行系统集成,提
向 12311080 电子设计应用软件
2.5 6 48 32 16
2.5 2.5 2.5 2.5
专业方向课(选修)最低学分要求
7
至少完整选修一个方向的课程,其他课程可以作为任选课。
331
课程 课程 类别 编码
课程名称
学时分配
各学期计划学分安排

学试计

一二 三 四 五 六七 八

学 期
划 学 时
讲 课
坚实的基础,提高科研能力和综合应用能力。
11.集中进行的实践教学环节时间安排(附表)。
八、教学计划
集成电路设计与集成系统专业教学计划(四年标准学程)
课程 课程 类别 编码
课程名称
学时分配
各学期计划学分安排

学试计

一二 三 四 五 六七 八

学 期
划 学 时
讲 课
践 实 验
上 机
16 周
16 周
16 周
2.5 6 48 32 16
3.0 6 64 48 16
8.5 7 2
2.5 2.5 3.0
IC 12311050 集成电路设计基础
2.5 5 48 32 16
设 12311060 集成电路版图设计 计

tea2025b功放课程设计

tea2025b功放课程设计一、课程目标知识目标:1. 学生能理解功放电路的基本工作原理,掌握tea2025b功放集成电路的内部结构和功能。

2. 学生能够运用所学的电路知识,分析并解释tea2025b功放电路的参数调整对音频输出的影响。

3. 学生能够掌握功放电路中常见元件的作用及其在电路中的布局。

技能目标:1. 学生能够独立完成tea2025b功放电路的搭建,并进行基本的调试。

2. 学生能够通过实验和数据分析,优化功放电路设计,提高音频输出质量。

3. 学生能够运用所学知识解决实际应用中功放电路出现的问题。

情感态度价值观目标:1. 培养学生对于电子技术的兴趣,激发他们探索未知、勇于创新的精神。

2. 培养学生团队协作能力,使他们学会在集体中共同解决问题。

3. 强化学生的责任心,使他们认识到作为一名电子工程师在社会发展中的责任和使命。

课程性质:本课程为电子技术实践课程,结合理论教学,以实验操作和实际应用为主。

学生特点:本课程针对高中年级学生,他们已具备一定的电子基础知识和实验操作能力。

教学要求:教师需通过生动形象的教学方式,激发学生的学习兴趣,引导学生通过实践掌握知识,提高学生的实际操作能力和问题解决能力。

同时,注重培养学生的团队协作和责任心,将理论教学与实际应用紧密结合,提高学生的综合素质。

通过本课程的学习,使学生能够将所学知识应用于实际生活和工作中。

二、教学内容1. 功放电路基础知识回顾:包括放大电路的基本原理、功放电路的类型及其特点。

- 教材章节:第二章 放大电路基础2. tea2025b功放集成电路介绍:详细讲解tea2025b的内部结构、工作原理和主要参数。

- 教材章节:第三章 集成电路及其应用3. 功放电路的搭建与调试:- 教学内容:指导学生搭建tea2025b功放电路,进行实际操作演练,学习调试方法。

- 教材章节:第四章 功率放大器4. 影响功放电路性能的因素及优化:- 教学内容:分析元件参数、电路布局等对功放性能的影响,探讨优化方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计 开课学期: 2013-2014学年第一学期 课程名称: 集成电路综合课程设计 学 院: 专 业: 班 级: 学 号: 姓 名: 任课教师:

2013 年 9 月 11 日 一、课程设计目的 ....................................................... 3 二、设计要求 ................................................................ 3 ................................................................................... 3 三、设计基本原理 ........................................................ 3

四、设计设计分析 ........................................................ 4 五,设计实现过程 ........................................................ 5 A.电路设计 ............................................................... 5 B.综合过程 .............................. 错误!未定义书签。 C.结果 ...................................... 错误!未定义书签。

五.总结及感想 ............................. 错误!未定义书签。 附件: ..................................................... 错误!未定义书签。 设计目的 利用verilogHDL设计数字电路异步FIFO,通过对verilogHDL的学习,掌握一些基本的知识,本次课程设计的安排旨在提升学生的动手能力,加强大家对专业理论知识的理解和实际运用,加强大家的自学能力,为大家做毕业设计做很好的铺垫。

设计要求 遵循RTL设计规则,利用VerilogHDL 设计数字电路异步FIFO. 异步FIFO具有读写两个时钟,读时钟100MHz,写时钟50MHz。RTL为可综合设计,需要考虑不同时钟领域的同步设计,具有空满标志产生逻辑,并且根据空满标志进行读写数据及读写使能等逻辑控制。 根据RTL设计,编写验证环境,即testbench,在testbench中测试异步FIFO的读写功能是否正确。异步FIFO写数据由testbench产生。编写一定的测试向量,来测试覆盖所设计的异步FIFO各项功能及指标。 将异步FIFO RTL在DC环境中进行综合,编写约束文件,给出最终的综合结果,包括面积报告,网表及时序报告。约束文件中,读写时钟要求见上,输入延迟为写时钟周期的一半,输出延迟为读时钟周期的1/3,其他约束要求根据RTL设计自己确定。

设计基本原理 从硬件的观点来看,就是一块数据内存。它有两个端口,一个用来写数据,就是将数据存入FIFO;另一个用来读数据,也就是将数据从FIFO当中取出。与FIFO操作相关的有两个指针,写指针指向要写的内存部分,读指针指向要读的内存部分。FIFO控制器通过外部的读写信号控制这两个指针移动,并由此产生FIFO空信号或满信号。 对于异步FIFO而言,数据是由某一个时钟域的控制信号写入FIFO,而由另一个时钟域的控制信号将数据读出FIFO。也就是说,读写指针的变化动作是由不同的时钟产生的。因此,对FIFO空或满的判断是跨时钟域的。如何根据异步的指针信号对FIFO的满状态或空状态进行正确的判断。 设计分析 在数字集成电路中,触发器要满足setup/hold的时间要求。当一个信号被寄存器锁存时,如果信号和时钟之间不满足这个要求,Q端的值是不确定的,并且 在未知的时刻会固定到高电平或低电平。这个过程称为亚稳态(Metastability)。图2所示为异步时钟和亚稳态,图中clka和clkb为异步时 钟。

①对写地址/读地址采用格雷码。由实践可知,同步多个异步输入信号出现亚稳态的概率远远大于同步一个异步信号的概率。对多个触发器的输出所组成的写地址/读地址可以采用格雷码。由于格雷码每次只变化一位,采用格雷码可以有效地减少亚稳态的产生。

2.2 空/满标志的产生 空/满标志的产生FIFO的核心部分。如何正确设计此部分的逻辑,直接影响到FIFO的性能。

空/ 满标志产生的原则是:写满不溢出,读空不多读。即无论在什么进修,都不应出现读写地址同时对一个存储器地址操作的情况。在读写地址相等或相差一个或多个地 址的时候,满标志应该有效,表示此时FIFO已满,外部电路应对FIFO发数据。在满信号有效时写数据,应根据设计的要求,或保持、或抛弃重发。同理,空 标志的产生也是如此,即:

空标志<=(|写地址-读地址|<=预定值)AND(写地址超前读地址) 满标志<=(|写地址-读地址|<=预定值)AND(读地址超前写地址)

设计实现过程

五、设计实现过程 A、电路实现过程

附图 1 由异步FIFO内部模块图和接口信号(附图1)可以知道,因为是两个异步的时钟,所以用锁存器来避免产生亚稳态。为了生成空满标志,我们采用格雷码来编写。我们可以看出FIFO中的读写指针是一个循环指针,读写指针初始化值都为0,满标志初始化为0,空标志初始化值为1.读写操作开始的时候,每做一次写操作,写指针加1,每做一次读操作,读指针也加1,。当读指针在加1过程中与写指针相等的时候,表示缓冲区为空,应置空标志。反之,写指针加1过程中等于读指针,缓冲区满,应置满标志。 经上面的分析,结合格雷码的特点,我们可以将满标志定义如下: overflow=(wptr[n]^rptr[n-1])&~(wptr[n-1]^rptr[n] 我们可以将空标志定义如下: underflow=~(wptr[n]^rptr[n-1]&(wptr[n-1]^rptr[n]) 分析后根据RTL设计的规则来编写代码如下所示: //asyn fifo `timescale 1ns/1ns module fifo ( wdata, full, winc, wclk, wrst_n, rdata, rinc, empty, rclk, rrst_n ); //---------------- parameter WIDTH = 8; parameter DEPTH = 2; parameter max_count = 2'b11; //------------------------- input [WIDTH:0] wdata; input winc; input wclk; input wrst_n; input rinc; input rclk; input rrst_n; //------------------- output full; output [WIDTH:0] rdata; output empty; //--------------------------- reg full_r; reg empty_r; reg [WIDTH:0] rdata_r; //------------------- reg [DEPTH:0] wptr; //n+1 ptr reg [DEPTH:0] rptr; reg [DEPTH:0] w1_rptr; reg [DEPTH:0] w2_rptr; reg [DEPTH:0] r1_wptr; reg [DEPTH:0] r2_wptr; //--------------------------------- reg [(WIDTH-1):0] fifomem [0:max_count]; reg [DEPTH:0] wbin,rbin;

wire [DEPTH:0] rgnext,rbnext,wgnext,wbnext; reg [DEPTH:0] rgnext_r,rbnext_r; wire [(DEPTH-1):0] raddr,waddr; //reg [(DEPTH-1):0] raddr_r; wire full_val,empty_val;

//---------------------/ //write in always@(posedge wclk) begin if(!winc&!full)//write enable no full fifomem[waddr] <= wdata; end //read out always@(posedge rclk) begin if(!rinc&!empty) rdata_r <= fifomem[raddr]; end //------------------------ //asyn write ptr always@(posedge wclk or negedge wrst_n) begin if(!wrst_n) {w2_rptr,w1_rptr} <= 2'b00; else {w2_rptr,w1_rptr} <= {w1_rptr,rptr}; end //----- //generate wptr and wbin always@(posedge wclk or negedge wrst_n) begin if(!wrst_n) {wbin,wptr} <= 2'b00;

相关文档
最新文档