集成电路综合课程设计

集成电路综合课程设计

ID:9816039

大小:268.50 KB

页数:29页

时间:2018-05-10

集成电路综合课程设计_第1页
集成电路综合课程设计_第2页
集成电路综合课程设计_第3页
集成电路综合课程设计_第4页
集成电路综合课程设计_第5页
资源描述:

《集成电路综合课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、课程设计开课学期:2013-2014学年第一学期课程名称:集成电路综合课程设计学院:专业:班级:学号:姓名:任课教师:2013年9月11日一、课程设计目的3二、设计要求33三、设计基本原理3四、设计设计分析4五,设计实现过程5A.电路设计5B.综合过程5C.结果8五.总结及感想9附件:23设计目的利用verilogHDL设计数字电路异步FIFO,通过对verilogHDL的学习,掌握一些基本的知识,本次课程设计的安排旨在提升学生的动手能力,加强大家对专业理论知识的理解和实际运用,加强大家的自学能力,为大家做毕业设计做很好的铺垫。设计要求遵循RTL设计规则,利用

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

3、。约束文件中,读写时钟要求见上,输入延迟为写时钟周期的一半,输出延迟为读时钟周期的1/3,其他约束要求根据RTL设计自己确定。设计基本原理从硬件的观点来看,就是一块数据内存。它有两个端口,一个用来写数据,就是将数据存入FIFO;另一个用来读数据,也就是将数据从FIFO当中取出。与FIFO操作相关的有两个指针,写指针指向要写的内存部分,读指针指向要读的内存部分。FIFO控制器通过外部的读写信号控制这两个指针移动,并由此产生FIFO空信号或满信号。对于异步FIFO而言,数据是由某一个时钟域的控制信号写入FIFO,而由另一个时钟域的控制信号将数据读出FIFO。也就是

4、说,读写指针的变化动作是由不同的时钟产生的。因此,对FIFO空或满的判断是跨时钟域的。如何根据异步的指针信号对FIFO的满状态或空状态进行正确的判断。设计分析在数字集成电路中,触发器要满足setup/hold的时间要求。当一个信号被寄存器锁存时,如果信号和时钟之间不满足这个要求,Q端的值是不确定的,并且在未知的时刻会固定到高电平或低电平。这个过程称为亚稳态(Metastability)。图2所示为异步时钟和亚稳态,图中clka和clkb为异步时钟。①对写地址/读地址采用格雷码。由实践可知,同步多个异步输入信号出现亚稳态的概率远远大于同步一个异步信号的概率。对多

5、个触发器的输出所组成的写地址/读地址可以采用格雷码。由于格雷码每次只变化一位,采用格雷码可以有效地减少亚稳态的产生。 2.2空/满标志的产生空/满标志的产生FIFO的核心部分。如何正确设计此部分的逻辑,直接影响到FIFO的性能。空/满标志产生的原则是:写满不溢出,读空不多读。即无论在什么进修,都不应出现读写地址同时对一个存储器地址操作的情况。在读写地址相等或相差一个或多个地址的时候,满标志应该有效,表示此时FIFO已满,外部电路应对FIFO发数据。在满信号有效时写数据,应根据设计的要求,或保持、或抛弃重发。同理,空标志的产生也是如此,即:空标志<=(

6、写地址-

7、读地址

8、<=预定值)AND(写地址超前读地址)满标志<=(

9、写地址-读地址

10、<=预定值)AND(读地址超前写地址)设计实现过程五、设计实现过程A、电路实现过程附图1由异步FIFO内部模块图和接口信号(附图1)可以知道,因为是两个异步的时钟,所以用锁存器来避免产生亚稳态。为了生成空满标志,我们采用格雷码来编写。我们可以看出FIFO中的读写指针是一个循环指针,读写指针初始化值都为0,满标志初始化为0,空标志初始化值为1.读写操作开始的时候,每做一次写操作,写指针加1,每做一次读操作,读指针也加1,。当读指针在加1过程中与写指针相等的时候,表示缓冲区为空,应置空标志

11、。反之,写指针加1过程中等于读指针,缓冲区满,应置满标志。经上面的分析,结合格雷码的特点,我们可以将满标志定义如下:overflow=(wptr[n]^rptr[n-1])&~(wptr[n-1]^rptr[n]我们可以将空标志定义如下:underflow=~(wptr[n]^rptr[n-1]&(wptr[n-1]^rptr[n])分析后根据RTL设计的规则来编写代码如下所示://asynfifo`timescale1ns/1nsmodulefifo(wdata,full,winc,wclk,wrst_n,rdata,rinc,empty,rclk,rrst

12、_n);//-------------

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。