eda课程设计先进先出FIFO缓冲器_第1页
eda课程设计先进先出FIFO缓冲器_第2页
eda课程设计先进先出FIFO缓冲器_第3页
eda课程设计先进先出FIFO缓冲器_第4页
eda课程设计先进先出FIFO缓冲器_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计任务书学生姓名:专业班级:指导教师:工作单位:信息工程学院题目:8 X 9先进先出(FIFO)缓冲器一、设计目的 根据设计要求,完成对 8X 9先进先出(FIFO)缓冲器的设计。 进一步加强对Quartus U的应用和对VHDL语言的使用。二、设计内容和要求设计一个8X 9先进先出(FIFO)缓冲器,9位字深,8位字宽;当读信号ready 有效时,FIFO的输出data_out使能;当ready无效时,FIFO的输出处于高阻态; 当写信号write有效时,8位宽的寄存器进行写操作,信号rdinc和wrinc被用来作为寄存器读和写指针递增,以指示该位寄存器的读和写。信号rdptclr和w

2、rptclr复位读写指针指向FIFO的第一个寄存器。data_in是将被载入到一个寄存器的数据。 掌握Quartus U的操作和使用方法。 利用Quartus U软件对所设计的电路进行仿真分析三、初始条件CPLD按键,时钟信号,拨码幵关等。四、时间安排1、2016年01月 11日,课程设计任务布置、选题、查阅资料。2、2016年 01月13日,设计,软件编程、仿真和调试。3、2016年01月 16日至 2015年01月 21日,设计的硬件调试。4、2016年01月 22日,机房检查设计成果,提交设计说明书及答辩指导教师签名: 2016年01月 22日系主任(或负责教师)签名: 2016年01月

3、 22日目录摘要. 绪论. 1. 设计的内容及要求 11.1 设计的目的 11.2 设计任务要求 12. FIFO . 2.1FIFO 的使用 2.2FIFO 的参数 2.3FIFO 的分类及设计 3. 先进先出缓存器设计 3.1 设计思想 3.2 各部分模块 3.2.1 先入先出缓存器 3.2.2 消抖电路 3.2.3 分频电路 3.2.4 顶层原理图 4. 仿真及硬件调试 4.1 缓冲器仿真 4.2 缓存器硬件测试 5. 心得体会 . 5. 参考文献 . 附录. 摘要本文介绍了先进先出(FIFO)缓存器的设计方法,主要阐述如何使用新兴的EDA器件取代传统的电子设计方法。利用FPGA勺可编程

4、性,拥有简洁而又多变的设计方法。本设计实现了先进先出缓存器的一些基本功能,也把一 些新的思路加入到设计中。主要包括采用了FPGA芯片,使用Quartus U中的VHDL吾言进行编程。VHD是一个标准语言,其具有良好的移植性,值得本设 计更为灵活,从而更有利于产品升级。关键词:VHDL FIFO;缓存器;Quartus n;绪论当前电子系统的设计正朝着速度快,容量大,体积小,质量轻,用 电省的方向发展。推动该潮流迅速发展的决定性因素就是使用了现代化 的EDA设计工具。EDA是电子设计自动化(ElectronicDesignAutomation) 的缩写,是90年代初,从CAD计算机辅助没计)、C

5、AM算机辅助制造)、 CAT(计算机辅助测试)和CAE计算机辅助工程)的概念发展而来的。EDA技 术就是以计算机为工具,在 EDA软件平台上,对以硬件描述语言 HDL为系 统逻辑描述手段完成的设计文件自动地完成逻辑编译、逻辑化简、逻辑 分割、逻辑综合及优化、逻辑行局布线、逻辑仿真,直至对于特定目标 芯片的适配编译、逻辑映射和编程下载等工作 1 。设计者的工作仅限于利 用软件的方式,即利用硬件描述语言来完成对系统硬件功能的描述,在 EDA工具的帮助下就可以得到最后的设计结果。尽管目标系统是硬件,但 整个设计和修改过程如同完成软件设计一样方便和高效。高速发展的CPLD/FPGA!件又为EDA技术的

6、不断进步奠定可坚实的物 质基础。CPLD/FPGA#件更广泛的应用及厂商间的竞争,使得普通的设计 人员获得廉价的器件和 EDA软件成为可能。VHDL是 一种全方位的硬件描述语言,包括系统行为级、寄存器传输 级和逻辑门级多个设计层次,支持结构、数据流和行为 3 种描述形式的混 合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶 向下或自底向上的电路设计过程都可以用VHDL来完成。另外,VHDL还有以下优点:VHDL的宽范围描述能力使它成为高层次设计的核心,将设计 人员的工作重心转移到了系统功能的实现和调试上,只需要花较少的精 力用于物理实现;VHDL可以用简洁明确的代码描述来进行

7、复杂控制逻辑 的设计,灵活且方便,而且也便于设计结果的交流、保存和重用; VHDL 的设计不依赖于特定的器件,方便了工艺的转换。1. 设计的内容及要求1.1 设计的目的根据设计要求,完成对8X 9先进先出(FIFO)缓冲器的设计。进一步加强对Quartus U的应用和对VHDL语言的使用。1.2 设计任务要求1设计一个8X 9先进先出(FIFO)缓冲器,9位字深,8位字宽;当读信号ready有效时,FIFO的输出data_out使能;当ready无效时,FIFO 的输出处于高阻态;当写信号 write 有效时, 8 位宽的寄存器进行写操 作,信号 rdinc 和 wrinc 被用来作为寄存器读

8、和写指针递增,以指示该位 寄存器的读和写。信号rdptclr和wrptclr复位读写指针指向FIFO的第 一个寄存器。 data_in 是将被载入到一个寄存器的数。2. 掌握Quartus U的操作和使用方法。3. 利用Quartus U软件对所设计的电路进行仿真分析。2. FIFOFIFO(FirstInFirstOut) 简单说就是指先进先出。由于微电子技术的飞速发展,新一代 FIFO 芯片容量越来越大,体积越来越小,价格越来越便宜。作为一种新型大规模集成电路, FIFO 芯片以其灵活、方便、高效 的特性,逐渐在高速数据采集、高速数据处理、高速数据传输以及多机 处理系统中得到越来越广泛的应

9、用。2.1FIFO 的使用FIFO 般用于不同时钟域之间的数据传输,比如FIFO的一端时AD数据采集,另一端时计算机的 PCI总线,假设其AD采集的速率为16位100 KSPS那么每秒的数据量为 100KX 16bit=1.6Mbps,而PCI总线的速度为3 3MHz总线宽度32bit,其最大传输速率为1056Mbps,在两个不同的时钟域 间就可以采用 FIFO 来作为数据缓冲。另外对于不同宽度的数据接口也可 以用FIFO ,例如单片机位8位数据输出,而DSP可能是16位数据输入, 在单片机与DSP连接时就可以使用FIFO来达到数据匹配的目的。2.2FIFO 的参数FIFO的宽度:也就是英文资

10、料里常看到的THEWIDTH它只的是FIFO一次读写操作的数据位,就像 MCUt 8位和16位,ARM32位等等,FIFO 的宽度在单片成品IC中是固定的,也有可选择的,如果用FPGA自己实现一个FIFO,其数据位,也就是宽度是可以自己定义的。FIFO的深度:THEDEEPTH它指的是FIFO可以存储多少个N位的数据 (如果宽度为N)。如一个8位的FIFO,若深度为8,它可以存储8个8 位的数据,深度为12,就可以存储12个8位的数据,FIFO的深度可大可 小。一般来说根据电路的具体情况,在兼顾系统性能和 FIFO 成本的情况 下估算一个大概的宽度和深度就可以了。而对于写速度慢于读速度的应 用

11、, FIFO 的深度要根据读出的数据结构和读出数据的由那些具体的要求 来确定。在 FIFO 实际工作中,其数据的满 / 空标志可以控制数据的继续写 入或读出。满标志:FIFO已满或将要满时由FIFO的状态电路送出的一个信号, 以阻止FIFO的写操作继续向FIFO中写数据而造成溢出(overflow )。空标志:FIFO已空或将要空时由FIFO的状态电路送出的一个信号, 以阻止FIFO的读操作继续从FIFO中读出数据而造成无效数据的读出(un derflow )。读时钟:读操作所遵循的时钟,在每个时钟沿来临时读数据。写时钟:写操作所遵循的时钟,在每个时钟沿来临时写数据。读指针:指向下一个读出地址

12、。读完后自动加1。写指针:指向下一个要写入的地址的,写完自动加1。读写指针其实就是读写的地址,只不过这个地址不能任意选择,而 是连续的。2.3FIFO 的分类及设计根均FIFO工作的时钟域,可以将 FIFO分为同步FIFO和异步FIFO。 同步FIFO是指读时钟和写时钟为同一个时钟。在时钟沿来临时同时发生 读写操作。异步FIFO是指读写时钟不一致,读写时钟是互相独立的。其 连接模式如图 2.1FIFO设计的难点在于怎样判断 FIFO的空/满状态。为了保证数据正确 的写入或读出,而不发生益处或读空的状态出现,必须保证FIFO在满的情况下,不能进行写操作。在空的状态下不能进行读操作。怎样判断 FI

13、F O的满/空就成了 FIFO设计的核心问题。一般是异步FIFO有空/满标志所产生问题,但是在本次设计中暂不讨论这个问题。图 2.1FIFO 连接模式3 先进先出缓存器设计先进先出法是指根据先入库先发出的原则,对于输出的数据以先输入存储器的数据为依据。3.1 设计思想在缓冲器内部定义一个 8 9 的存储空间用于暂存数据。初始状态读写指针 都指向 0号数寄存器(共 8 个)。当输入通道打开时,每来一个脉冲(由 外部按键提供),向缓冲期内输入一个 9 位的数,与此同时内部寄存器读 指针加 1,准备接受下一个需要暂存的数,下一个脉冲到来,再存一个数,读指针再加1当输出通道打幵时,每来一个脉冲输出一个

14、9位数,写指针加1,准备输出下一个9位数,同理进行下一个数的输出 由于输入 / 输出数据是按需进行的,故设计脉冲由按键提供,为更好的进 行控制,加一个消抖电路使其每按一次内部计数确定加 1 。3.2 各部分模块本设计共由三个部分组成:先入先出缓存器、消抖模块、分频器。3.2.1 先入先出缓存器这是整个设计的核心模块,其输入输出端口设置如下:ready :控制输出通道,当其为1'时,输出通道打幵,可以进行读 操作。writey :控制输入通道,当其为 1'时,输入通道打开,可以进行 写操作。rdptclr ,wrptclr :缓冲器内部读写指针,用于规范内部寄存器(编 号 07)

15、的使用,两指针初始状态都指向 0 寄存器。当写入第一个数据时, 数据存入 0 寄存器,同时写指针加 1,指向下一个寄存器,准备接受下一 个将被写入的数据。在需要读出数据时,打开输出通道,同时由脉冲控 制输出数据,每输出一个数据,读指针加 1,准备输出下一个数据,同时 输出数据以输入数据的个数为顶限。clk :脉冲控制输入,控制数据的写入和读出。data_in :放置将被输入的数据。data_out :用于输出数据的通道。readit :控制读取输入数据。编写的程序见附录。生成元件后如图 3.1 所示:图 3.1FIFO 元件图3.2.2 消抖电路本设计用外部按键产生脉冲来控制输入输出数据的个数

16、,每一个脉冲 对应一个数据,同时对应内部寄存器的移位。为了保证数据输入顺序与 数据输出顺序完全相同,要保证每按键一次只产生一个脉冲。通常的按 键在闭合及断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键 的机械特性决定,一般为 5ms10ms为确保电路对按键的一次闭合仅作 一次处理,必须去除按键抖动。软件消抖的方法为:在检测出键闭合保持后执行一个延时程序,产生5ms10m啲延时,让前延抖动消失后再一次检测键的状态,如果仍保持 闭合状态电平,则确认真正有键按下。当检测到按键释放后,也要给 5ms10m啲延时,待后沿抖动消失才能转入该键的处理程序。本课题中用2个D触发器和一个2输入与门联合实现。

17、用程序分别编写D触发器和2输入与门,生成元件,供最后顶层原理图使用。D触发器的程序见附录,消抖模块的电路如图 3.2 所示:图 3.2 消抖模块原理图3.2.3 分频电路为了配合消抖电路,取延时为 5ms,即使得采样频率为5ms,由此根据 f=1/T,算得脉冲频率为200Hz,而实验箱上提供的是20M的时钟频率,故 要对时钟进行分频。程序中用内部计数器计算到来的脉冲数,脉冲数小 于 50000时输出为 0,否则输出为 1,同时计到 100000 时计数器清零。同 理,将分频器生成元件,供顶层原理图使用。生成元件如图 3.3 所示:图 3.3 分频器元件图3.2.4 顶层原理图以上所描述模块的程

18、序编写均在同一工程下,由程序生成的元件也在该工程下。用前面所介绍的方法,在该工程下再建一原理图作为顶层,将所需的元件按照要求进行连线,加入输入输出处端口并改名。保 存原理图,并将原理图置为顶层文件。本设计的整体原理图如图 3.4 所 示:图 3.4 整体原理图4 仿真及硬件调试4.1 缓冲器仿真用前面所描述的方法进入仿真界面,得到某个激励条件下的仿真图如图 4.1 :图 4.1 仿真图4.2 缓存器硬件测试按照软件用法中的步骤将程序导入实验箱上,接通电源,用按键来控制 它的脉冲输入,用拨码开关来控制它的输入序列,用发光二极管作为它 的输出,以观察灯的的变化来观察FIFO 的输出。在调试过程中出

19、现了部分问题,由于输入的管脚比较多,也用了很多拨码开关,在设置时,要 小心区分。5 心得体会通过这次的课设,我认识到了Quartus U软件的功能非常强大,对于很多关于数电方面的元器件都可以用它来实现,这使得我们在使用的时 候非常方便及多变。我也熟悉了Quartus U的工作环境,可以很熟练的对Quartus U进行常规的操作,快速进行程序编辑和仿真。本文次课设利用 Quartus U设计FIFO先进先出缓存器,方法简单、快捷。在本次的课程设计中,由于没有完全读懂课设要求,导致设计出来的FIFO的功能没有完全达到要求,使我对自己的学习态度有了反思。读课设要求,写程序,直到完成硬件调试都需要认真

20、对待,每一步都不能 放松,否则都可能导致整个设计失败。参考文献1 张亦华,延明,肖冰.数字逻辑设计实验技术与 EDA工具.北京:北京邮 电大学出版社 ,20032 陈小毛,胡机秀.新编数字电路与EDA技术.北京:国防工业出版社, 20083 夏路易.基于EDA勺电子技术课程设计.北京:电子工业出版社, 2009.4 宋嘉玉,孙丽霞.EDA实用技术.北京:人民邮电出版社,2006. 齐洪喜,陆颖.VHDL电路设计实用技术.北京:清华大学出版社, 2004.附录FIFIO 勺程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_uns

21、igned.all;entitykesheisport(clk , ready , writey , readit , rdptclr , wrptclr:instd_logic;data_out:outstd_logic_vector(8downto0);end;data_in:instd_logic_vector(8downto0);architecturearhofkesheis componentnclk port(clk:instd_logic;clk1:bufferstd_logic);endcomponent;componentanjian port(clk:instd_logi

22、c;d:instd_logic_vector(0to4);q:outstd_logic_vector(0to4);endcomponent;componentcpu port(q:std_logic_vector(0to4);data_out:outstd_logic_vector(8downto0);endcomponent;data_in:instd_logic_vector(8downto0);signalq1:std_logic_vector(0to4);signalc1:std_logic;begina1:nclkportmap(clk=>clk,clk1=>c1);a2

23、:anjianportmap(clk=>c1,d(0)=>ready,d(1)=>writey,d(2)=>rdptclr,d(3)=>wrptclr,d(4)=>readit,q=>q1);a3:cpuportmap(q=>q1,data_out=>data_out,data_in=>data_in);end ;cpu 程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycpuisport(q:std_logic_vector(

24、0to4);data_in:instd_logic_vector(8downto0);data_out:outstd_logic_vector(8downto0);end;architecturearhofcpuissignalrdinc:integerrange0to7;signalwrinc:integerrange0to7;signaldata0,data1,data2,data3,data4,data5,data6,data7:std_logic_vector(8downto0);beginp1:process(q)beginifq(2)='1'thenrdinc<

25、;=0;elsifq(0)='1'thenifrising_edge(q(4)thencaserdinciswhen0=>data_out<=data0;when1=>data_out<=data1;when2=>data_out<=data2;when3=>data_out<=data3;when4=>data_out<=data4;when5=>data_out<=data5;when6=>data_out<=data6;when7=>data_out<=data7;endcas

26、e;rdinc<=rdinc+1;endif;elsifq(0)='0'thendata_out<="ZZZZZZZZZ"endif;endprocess;p2:process(q)begin ifq(3)='1'thenwrinc<=0;elsifq(3)='0'thenifrising_edge(q(1)then casewrincis when0=>data0<=data_in;when1=>data1<=data_in;when2=>data2<=data_in;when3=>data3<=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论