还剩16页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
1、设计任务与要求
1.设计4位十六进制频率计,学习较复杂的数字系统设计方法;
2.深入学习数字系统设计的方法与步骤;
3.用元件例化语句写出频率计的顶层文件;
4.用VHDL硬件描述语言进行模块电路的设计;
5.设计硬件要求PC机,操作系统为Windows2000/XP,本课程所用系统均为__x+plusII
5.1设计平台,GW48系列SOPC/EDA实验__系统
二、总体框图
2.1工作原理以及方案原理工作说明根据频率的定义和频率测量的基本原理,测定__的频率必须有一个脉宽为1秒的对输入__脉冲计数允许的__;1秒计数结束后,计数值锁入锁存器的锁存__和为下一测频计数周期作准备的计数器清0__这3个__可以由一个测频控制__发生器产生,即图(a)中的TESTCTL,它的设计要求是,TESTCTL的计数使能__CNT_EN能产生一个1秒脉宽的周期__,并对频率计的每一计数器CNT4B的ENA使能端进行同步控制当CNT_EN高电平时,允许计数;低电平时停止计数,并保持其所计的脉冲数在停止计数期间,首先需要产生一个锁存__LOAD,在该__上升沿时,将计数器在前1秒钟的计数值锁存进各锁存器REG4B中,并由外部的7段译码器译出,显示计数值设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零__而不断闪烁锁存__之后,必须有一清零__RST_CNT对计数器进行清零,为下1秒钟的计数操作作准备其工作时序波形如图a图a频率计测频控制器TESTCTL测控时序图
2.2选择的设计方案
1.根据频率计的工作原理,将电路划分成控制器、计数器、锁存器和LED显示几个模块,控制器——产生1秒脉宽的计数允许__、锁存__和计数器清零__计数器——对输入__的脉冲数进行累计锁存器——锁存测得的频率值LED显示——将频率值显示在数码管上
2.根据图(a)、(b)及
(1)
(2)描述的4位十进制频率计的工作原理,利用__x+plusII
5.1对以上三者的程序进行文本编辑输入和仿真测试并根据图b,写出频率计的顶层文件,并给出其测频时序波形,及其分析
3.频率计设计硬件验证编译、综合和适配频率计顶层设计文件,并编程下载进入目标器件中本实验目标器件是EP1K30TC144-3,实验电路选择模式0,4个数码管(数码4-1PIO31-PIO16)显示测频输出;待测频率输入FIN由clock0输入,频率可选4Hz、256HZ...或更高;1HZ测频控制__F1HZ可由clock2输入(用电路帽选选1Hz)
2.
3、总体框图
3、选择器件
1.装有QuartusII软件的微型计算机计算机的硬件尽可能高,至少可以实现QuartusII软件的使用
2.硬件实现的芯片为PFGA/CPLD,芯片管脚的数量要保证足够设计的程序所要使用的数量,并且使其所有管脚都有可分配的管脚,可以实现QuartusII上综合、适配的程序下载后可以顺利实现
4、功能模块
(1)、十六进制计数LIBRARYIEEE;USEIEEE.STD_LOGIC_
1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT4BISPORTCLK:INSTD_LOGIC;RST:INSTD_LOGIC;ENA:INSTD_LOGIC;OUTY:OUTSTD_LOGIC_VECTOR3DOWNTO0;COUT:OUTSTD_LOGIC;ENDCNT4B;ARCHITECTUREbeh__OFCNT4BISSIGNALCQI:STD_LOGIC_VECTOR3DOWNTO0;BEGINP_REG:PRO__SSCLKRSTENABEGINIFRST=1THENCQI=0000;ELSIFCLKEVENTANDCLK=1THENIFENA=1THENCQI=CQI+1;ENDIF;ENDIF;OUTY=CQI;ENDPRO__SSP_REG;--进位输出COUT=CQI0ANDCQI1ANDCQI2ANDCQI3;ENDbeh__;仿真图
(2)扫描仪模块--seltimelibraryieee;useieee.std_logic_
1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityseltimeisportclk1reset:instd_logic;D1D2D3D4:instd_logic_vector3downto0;daout:outstd_logic_vector3downto0;sel:outstd_logic_vector2downto0;endseltime;architecturefunofseltimeissignalcount:std_logic_vector2downto0;beginsel=count;pro__ssclk1resetbeginifreset=0thencount=000;elsifclk1eventandclk1=1thenifcount=011thencount=000;elsecount=count+1;endif;endif;casecountiswhen000=daout=D1;when001=daout=D2;when010=daout=D3;when011=daout=D4;whenothers=NULL;endcase;endpro__ss;endfun;仿真图
(3)、四位锁存libraryieee;useieee.std_logic_
1164.all;entityreg4bisportload:instd_logic;din:instd_logic_vector3downto0;dout:outstd_logic_vector3downto0;endreg4b;architecturebeh__ofreg4bisbeginpro__ssloaddinbeginifloadeventandload=1thendout=din;endif;endpro__ss;endbeh__;仿真图
(4)、测频控制器libraryieee;-useieee.std_logic_
1164.all;useieee.std_logic_unsigned.all;entitytestctlisportclkk:instd_logic;cnt_enrst_cntload:outstd_logic;endtestctl;architecturebeh__oftestctlissignaldiv2clk:std_logic;beginpro__ssclkkbeginifclkkeventandclkk=1thendiv2clk=notdiv2clk;endif;endpro__ss;pro__ssclkkdiv2clkbeginifclkk=0anddiv2clk=0thenrst_cnt=1;elserst_cnt=0;endif;endpro__ss;load=notdiv2clk;cnt_en=div2clk;endbeh__;仿真图
(5)、七段数码显示--deled模块libraryieee;useieee.std_logic_
1164.all;useieee.std_logic_unsigned.all;entitydeledisportnum:instd_logic_vector3downto0;led:outstd_logic_vector6downto0;enddeled;architecturefunofdeledisbeginled=1111110whennum=0000else01_____whennum=0001else1101101whennum=0010else1111001whennum=0011else0110011whennum=0100else1011011whennum=0101else1011111whennum=0110else11_____whennum=0111else1111111whennum=1000else1111011whennum=1001else1110111whennum=1010else0011111whennum=1011else1001110whennum=1100else0111101whennum=1101else1001111whennum=1110else1000111whennum=1111;endfun;仿真图
(6)、3_8译码器模块--decode3-8libraryieee;useieee.std_logic_
1164.all;useieee.std_logic_unsigned.all;entitydecode3_8isportsel:instd_logic_vector2downto0;q:outstd_logic_vector7downto0;enddecode3_8;architectureaofdecode3_8isbeginq=11111110whensel=0else11111101whensel=1else11111011whensel=2else11110111whensel=3else--11101111whensel=4else--11011111whensel=5else11111111;enda;仿真图
(7)、分频器模块--div_clk1libraryieee;useieee.std_logic_
1164.all;useieee.std_logic_unsigned.all;entitydiv_clk1isportclk_in:instd_logic;div_out:outstd_logic;div_clk2:outstd_logic;enddiv_clk1;architectureaofdiv_clk1issignalfre_n:integerrange0to_____0;signalclk_tmp:std_logic;signalfre_n1:integerrange0to125;signalclk_tmp1:std_logic;begindiv_out=clk_tmp;pro__ssclk_inbeginiffalling_edgeclk_intheniffre_n=99999thenfre_n=0;clk_tmp=notclk_tmp;elsefre_n=fre_n+1;endif;endif;endpro__ss;div_clk2=clk_tmp1;pro__ssclk_tmpbeginiffalling_edgeclk_tmptheniffre_n1=124thenfre_n1=0;clk_tmp1=notclk_tmp1;elsefre_n1=fre_n1+1;endif;endif;endpro__ss;enda;仿真图
5、总体设计电路图
5.1顶层电路原理图
5.2总体模块仿真图
5.3管脚分配图
六、____
1.曹昕燕,周凤臣,聂春燕EDA技术实验和课程设计北京清华大学出版社,
20062.潘松,黄继业EDA技术实用教程(第三版)北京科学出版社,
20063.谭会生EDA技术综合应用实例和分析西安西安电子科技大学出版社,2004。