基于VHDL语言的频率计设计_第1页
基于VHDL语言的频率计设计_第2页
基于VHDL语言的频率计设计_第3页
基于VHDL语言的频率计设计_第4页
基于VHDL语言的频率计设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、目录一、课程设计任务:2二、课程设计原理:2三、课程设计所需仪器:2四、课程设计使用的硬件资源及原理框图:2五、设计过程及操作:31、FTCTRL测频控制模块:32、计数器模块:33、 REG32B锁存器模块34、 DECL7S译码器模块45、分频器模块46、MUX多路选择器模块。47、器件连接:48、 操作过程:4六、设计各个模块代码:51: FTCTRL模块52: CNT_10计数器模块53: REG32B锁存器模块64: DECL7S译码器模块65: any_1010分频器模块76: any_55分频器模块77:any_1616分频模块88: MUX多路选择器模块99:顶层例化代码9七、

2、总电路:12八、管脚配置:13九、设计结果:14一、课程设计任务:设计8位十进制频率计二、课程设计原理:根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的对输入信号脉冲计数允许的信号;1秒计数结束后,计数值锁入锁存器的锁存信号和为下一测频计数周期作准备的计数器清0信号。这清0个信号可以由一个测频控制信号发生器TESTCTL产生,它的设计要求是,TESTCTL的计数使能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计白每一计数器CNT10的EN使能端进行同步控制。当CNT_EN高电平时,允许计数;低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,首先需要一个锁

3、存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进各锁存器REG4B中,并由外部的7段译码器译出,显示计数值。设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。锁存信号之后,必须有一清零信号RST_CNT对计数器进行清零,为下1秒钟的计数操作作准备。三、课程设计所需仪器:AltreaDE2-115实验箱;quartusII12.1;modelsim仿真软件。四、课程设计使用的硬件资源及原理框图:1、50MHz时钟源两个2、拨动开关3、7段数码管/液晶显示屏五、设计过程及操作:1、FTCTRL测频控制模块:频率计的核心控制部分为FTCTRL,该模块的技术是能信号CNT_

4、EN能产生一个1s脉宽的周期信号(由于实验箱提供的是50MHz的高频信号,所以需要通过分频器获得1s脉宽信号),并对频率计中的计数器的EN使能端进行同步测控。当CNT_EN高电平时允许计数;低电平时停止计数,并保持其所设计的脉冲数。在停止计数期间,首先需要一个锁存信号LOAD的上升沿将计数器在前一秒钟的计数器的计数值锁存进锁存器REG32B中,并由外部的十六进制7段译码器译出,显示计数值。锁存信号后,必须有一清零信号RST_CNT对计数器清零,为下一秒的计数操作做准备。FTCTRLU1CNTENCLKKLOAD尺SJCNT2、计数器模块:由于设计要求为8位十进制输出,所以采用的是十进制加法带进

5、位的计数器级联的形式完成计数功能,每个单独的计数器有4位的十进制DOUT(3DOWNTO0)输出和一个进位COUT输出,输入的RST复位端、EN使能端和计数信号CLK端。级联时,将被测信号接入第一个各位的CNT_10计数器的CLK端,并且将每上一个的进位端与下一个的计数器CNT_10的计数CLK相连。CLKENRSTCNT10:U3COUTDOU7I3.03、REG32B锁存器模块锁存器为32位,包括一个锁存信号LK,32位的输入和输出。4、DECL7S译码器模块因为每个计数器输出的是二进制数,所以转化到七段数码管上需要通过4-7译码器译码。实验箱的数码管为共阳极。需要8个数码管同时显示,所以

6、需要8个译码器。DECL7S:U18A3.,0LED7S6,.O)5、分频器模块由于实验箱只提供50MHz的信号,所以需要分频得到1Hz的信号以及不同的频率进行测试,所以需要分频器。本设计分频器采用的是5分频器any_5、10分频器any_10和16分频器any_16。6、MUX多路选择器模块。由于实验箱提供的信号源有限,所以要进行测试,必须使用多路选择器来进行对不同的分频信号进行测试来验证频率计的功能是否完成。本次设计采用的是4选1多路选择器。AIN- 日ZCIIIMV-DIIM- 50S17、器件连接:以上各部份器件已经完善。需要将这些器件连接起来完成最终的设计,所以本次设计采取了元件例化

7、,用例化语句将各个器件连接起来。顶层文件见代码段。8、操作过程:A建立项目B选择器件:器件系列(DeviceFamily)CycloneIVE器件型号(AvailableDevices)EP4CE115F29C7C建立设计文档,newvhdlfile,并编辑保存。D点击按键栏(或Processing菜单中)的Startcompilation进行编译E编译正确完成后,点击按键栏(或Assignments菜单中)的PinPlanner进行引脚锁定F双击Location栏,在下拉菜单中选择需要锁定的引脚(EP4c115F芯片引脚分布详见附录)G再次编译项目H连接实验箱I程序下载点击按键栏(或Tool

8、s菜单)的Programmer,此时没有添加硬件,点击HardwareSetup选择硬件。在Currentlyselectedhardware下拉菜单中选择USB-Blaster后,点击Close,回到Programmer页面。在HardwareSetup栏中可看到USB-Blaster。注意Mode为缺省的JTAG接口硬件选择完毕。点击Start开始下载。Progress进度完成后下载完毕。六、设计各个模块代码:1:FTCTRL模块LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYFTCTR

9、LISPORT(CLKK:INSTD_LOGIC;CNT_EN,RST_CNT:OUTSTD_LOGIC;LOAD:OUTSTD_LOGIC);ENDFTCTRL;ARCHITECTUREbehavofFTCTRLISSIGNALDIV2CLK:STD_LOGIC:=0;BEGINPROCESS(CLKK)BEGINIFCLKKEVENTANDCLKK=1THENDIV2CLK=NOTDIV2CLK;ENDIF;ENDPROCESS;PROCESS(CLKK,DIV2CLK)BEGINIFCLKK=0ANDDIV2CLK=0THENRST_CNT=1;ELSERST_CNT=0;ENDIF;E

10、NDPROCESS;LOAD=NOTDIV2CLK;CNT_EN0);ELSIFCLKEVENTANDCLK=1THENIFEN=1THENIFQ10);ENDIF;ENDIF;ENDIF;IFQ1=1001THENCOUT=0;ELSECOUT=1;ENDIF;DOUT=Q1;ENDPROCESS;ENDBHV;3: REG32B锁存器模块LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYREG32BISPORT(LK:INSTD_LOGIC;DIN:INSTD_LOGIC_VECTOR(31DOWNTO0);Q:OUTSTD_LOGIC_VECTOR

11、(31DOWNTO0);END;ARCHITECTUREBHVOFREG32BISBEGINPROCESS(LK,DIN)BEGINIFLKEVENTANDLK=1THENQLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SNULL;ENDCASE;ENDPROCESS;END;5: any_1010分频器模块libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityany_10isport(clk10:instd_logic;k:outstd_log

12、ic);end;architecturebhvofany_10issignals:std_logic;signalc:std_logic_vector(3downto0);beginprocess(clk10,c)beginifrising_edge(clk10)thenif(c=1001)thenc=0000;elsec=c+1;endif;if(c=0101)thens=nots;elsif(c=0000)thens=nots;endif;endif;endprocess;k=s;endbhv;6: any_55分频器模块libraryieee;useieee.std_logic_1164

13、.all;useieee.std_logic_unsigned.all;entityANY_5isport(clk5:instd_logic;kf:outstd_logic);end;architecturebhvofANY_5issignalc1,c2:std_logic_vector(2downto0);signalm1,m2:std_logic;beginprocess(clk5,c1)beginifrising_edge(clk5)thenif(c1=100)thenc1=000;elsec1=c1+1;endif;if(c1=001)thenm1=notm1;elsif(c1=011

14、)thenm1=notm1;endif;endif;endprocess;process(clk5,c2)beginiffalling_edge(clk5)thenif(c2=100)thenc2=000;elsec2=c2+1;endif;if(c2=001)thenm2=notm2;elsif(c2=011)thenm2=notm2;endif;endif;endprocess;kf=m1orm2;endbhv;7: any_1616分频模块libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.

15、std_logic_unsigned.all;entityany_16isport(clk_in:instd_logic;clk_out:outstd_logic);endentityany_16;architecturediv1ofany_16issignalclk_outQ:std_logic;signalcoutQ:std_logic_vector(15downto0);beginprocess(clk_in)beginifclk_ineventandclk_in=1thenifcoutQ15thencoutQ=coutQ+1;elsecoutQ0);endif;endif;endpro

16、cess;process(coutQ)beginifcoutQ16/2thenclk_outQ=0;elseclk_outQ=1;endif;endprocess;clk_out=clk_outQ;endarchitecturediv1;8: MUX多路选择器模块libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityMUXisport(AIN,BIN,CIN,DIN,S0,S1:instd_logic;丫:outstd_logic);ende

17、ntityMUX;architectureAofMUXissignalS:std_logic_vector(1downto0);beginSYYYYC8,CNT_EN=NE,RST_CNT=NR,LOAD=NL);U2:REG32BPORTMAP(LK=NL,DIN(3DOWNTO0)=N1,DIN(7DOWNTO4)=N2,DIN(11DOWNTO8)=N3,DIN(15DOWNTO12)=N4,DIN(19DOWNTO16)=N5,DIN(23DOWNTO20)=N6,DIN(27DOWNTO24)=N7,DIN(31DOWNTO28)=N8,Q(3DOWNTO0)=L1,Q(7DOWNT

18、O4)=L2,Q(11DOWNTO8)=L3,Q(15DOWNTO12)=L4,Q(19DOWNTO16)=L5,Q(23DOWNTO20)=L6,Q(27DOWNTO24)=L7,Q(31DOWNTO28)=L8);U3:CNT10PORTMAP(RST=NR,EN=NE,CLK=YY,DOUT=N1,COUT=M1);-U4:CNT10PORTMAP(RST=NR,EN=NE,CLK=M1,DOUT=N2,COUT=M2);U5:CNT10PORTMAP(RST=NR,EN=NE,CLK=M2,DOUT=N3,COUT=M3);U6:CNT10PORTMAP(RST=NR,EN=NE,CL

19、K=M3,DOUT=N4,COUT=M4);U7:CNT10PORTMAP(RST=NR,EN=NE,CLK=M4,DOUT=N5,COUT=M5);U8:CNT10PORTMAP(RST=NR,EN=NE,CLK=M5,DOUT=N6,COUT=M6);U9:CNT10PORTMAP(RST=NR,EN=NE,CLK=M6,DOUT=N7,COUT=M7);U10:CNT10PORTMAP(RST=NR,EN=NE,CLK=M7,DOUT=N8);U11:DECL7SPORTMAP(A=L1,LED7S=QOUT(6DOWNTO0);U12:DECL7SPORTMAP(A=L2,LED7S=

20、QOUT(13DOWNTO7);U13:DECL7SPORTMAP(A=L3,LED7S=QOUT(20DOWNTO14);U14:DECL7SPORTMAP(A=L4,LED7S=QOUT(27DOWNTO21);U15:DECL7sPORTMAP(A=L5,LED7S=QOUT(34DOWNTO28);U16:DECL7SPORTMAP(A=L6,LED7S=QOUT(41DOWNTO35);U17:DECL7sPORTMAP(A=L7,LED7S=QOUT(48DOWNTO42);U18:DECL7SPORTMAP(A=L8,LED7S=QOUT(55DOWNTO49);U19:any_

21、10PORTMAP(CLK,C1);U20:any_10PORTMAP(C1,C2);U21:any_10PORTMAP(C2,C3);U22:any_10PORTMAP(C3,C4);U23:any_10PORTMAP(C4,C5);U24:any_10PORTMAP(C5,C6);U25:any_10PORTMAP(C6,C7);U26:any_5PORTMAP(C7,C8);U27:MUXPORTMAP(Y1,丫2,丫3,FFIN,S0,S1,YY);U28:any_5PORTMAP(FFIN,Y1);U29:any_16PORTMAP(FFIN,Y2);U30:any_10PORTMA

22、P(FFIN,Y3);ENDARCHITECTURE;11七、总电路:1anr_10-U23any_1ft:U2iany_10:U35ari/_5:U26-c12;u=:八、管脚配置:CLOCK2_50InputPIN_AG14CLKHEX46OutputPIN_AE18QOUT34CLOCK3_50InputPIN_AG15FFINHEX45OutputPIN_AF19QOUT33HEX06OutputPIN_H22QOUT6HEX44OutputPIN_AE19QOUT32HEX05OutputPIN_J22QOUT5HEX43OutputPIN_AH21QOUT31HEX04Output

23、PIN_L25QOUT4HEX42OutputPIN_AG21QOUT30HEX03OutputPIN_L26QOUT3HEX41OutputPIN_AA19QOUT29HEX02OutputPIN_E17QOUT2HEX40OutputPIN_AB19QOUT28HEX01OutputPIN_F22QOUT1HEX56OutputPIN_AH18QOUT41HEX00OutputPIN_G18QOUT0HEX55OutputPIN_AF18QOUT40HEX16OutputPIN_U24QOUT13HEX54OutputPIN_AG19QOUT39HEX15OutputPIN_U23QOUT12HEX53OutputPIN_AH19QOUT38HEX14OutputPIN_W25QOUT11HEX52OutputPIN_AB18QOUT37HEX13OutputPIN_W22QOUT10HEX51OutputPIN_AC18QOUT36HEX12OutputPIN_W21QOUT9HEX50OutputPIN_AD18QOUT35HEX11OutputPIN_Y22QOUT8HEX66

温馨提示

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

评论

0/150

提交评论