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

下载本文档

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

文档简介

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_10 10 分频器模块76: any_5 5分频器模块77: any_16 1

2、6分频模块88: MUX多路选择器模块99:顶层例化代码.9七、总电路: .12八、管脚配置:.13九、设计结果:.14. 学习帮手 .专业整理 .一、课程设计任务:设计 8 位十进制频率计二、课程设计原理:根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1 秒的对输入信号脉冲计数允许的信号;1 秒计数结束后,计数值锁入锁存器的锁存信号和为下一测频计数周期作准备的计数器清0 信号。这清 0 个信号可以由一个测频控制信号发生器TESTCTL产生,它的设计要求是,TESTCTL的计数使能信号 CNT_EN能产生一个 1 秒脉宽的周期信号,并对频率计的每一计数器CNT10的 EN使

3、能端进行同步控制。 当 CNT_EN高电平时,允许计数;低电平时停止计数, 并保持其所计的脉冲数。在停止计数期间, 首先需要一个锁存信号 LOAD的上跳沿将计数器在前1 秒钟的计数值锁存进各锁存器REG4B中,并由外部的 7 段译码器译出,显示计数值。设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。 锁存信号之后, 必须有一清零信号RST_CNT对计数器进行清零, 为下 1 秒钟的计数操作作准备。三、课程设计所需仪器:Altrea DE2-115实验箱; quartusII 12.1;modelsim仿真软件。四、课程设计使用的硬件资源及原理框图:1、 50MHz时钟源

4、两个2、拨动开关3、 7 段数码管 / 液晶显示屏. 学习帮手 .专业整理 .五、设计过程及操作:1、 FTCTRL测频控制模块:频率计的核心控制部分为FTCTRL,该模块的技术是能信号CNT_EN能产生一个1s 脉宽的周期信号(由于实验箱提供的是50MHz的高频信号,所以需要通过分频器获得1s 脉宽信号),并对频率计中的计数器的EN使能端进行同步测控。当CNT_EN高电平时允许计数;低电平时停止计数, 并保持其所设计的脉冲数。在停止计数期间,首先需要一个锁存信号LOAD的上升沿将计数器在前一秒钟的计数器的计数值锁存进锁存器REG32B中,并由外部的十六进制 7 段译码器译出, 显示计数值。

5、锁存信号后, 必须有一清零信号 RST_CNT对计数器清零,为下一秒的计数操作做准备。2、计数器模块:由于设计要求为8 位十进制输出,所以采用的是十进制加法带进位的计数器级联的形式完成计数功能,每个单独的计数器有4 位的十进制DOUT( 3 DOWNTO )0输出和一个进位COUT输出 , 输入的 RST复位端、 EN使能端和计数信号CLK端。级联时, 将被测信号接入第一个各位的CNT_10计数器的CLK端,并且将每上一个的进位端与下一个的计数器CNT_10的计数 CLK相连。3、 REG32B锁存器模块锁存器为32 位,包括一个锁存信号LK, 32 位的输入和输出。. 学习帮手 .专业整理

6、.4、 DECL7S译码器模块因为每个计数器输出的是二进制数,所以转化到七段数码管上需要通过4-7译码器译码。实验箱的数码管为共阳极。需要8 个数码管同时显示,所以需要8 个译码器。5、分频器模块由于实验箱只提供50MHz的信号,所以需要分频得到1Hz 的信号以及不同的频率进行测试,所以需要分频器。本设计分频器采用的是5 分频器 any_5、10 分频器 any_10 和 16 分频器 any_16。6、 MUX多路选择器模块。由于实验箱提供的信号源有限,所以要进行测试,必须使用多路选择器来进行对不同的分频信号进行测试来验证频率计的功能是否完成。本次设计采用的是4 选 1 多路选择器。7、器件

7、连接:以上各部份器件已经完善。 需要将这些器件连接起来完成最终的设计, 所以本次设计采取了元件例化,用例化语句将各个器件连接起来。顶层文件见代码段。8、操作过程:A 建立项目B 选择器件:器件系列 (Device Family)Cyclone IV E器件型号 (Available Devices)EP4CE115F29C7C建立设计文档,new vhdl file,并编辑保存。D点击按键栏(或Processing菜单中)的Start compilation进行编译E编译正确完成后,点击按键栏(或Assignments菜单中)的Pin Planner进行引脚锁定F 双击 Location 栏,

8、在下拉菜单中选择需要锁定的引脚 ( EP4C115F芯片引脚分布详见附录)G 再次编译项目H 连接实验箱I 程序下载点击按键栏(或 Tools 菜单)的 Programmer ,此时没有添加硬件, 点击 Hardware Setup 选择硬件。在 Currently selected hardware 下拉菜单中选择 USB-Blaster 后,点击 Close ,回到 Programmer 页面。在 Hardware Setup 栏中可看到 USB-Blaster 。注意 Mode为缺省的. 学习帮手 .专业整理 .JTAG接口硬件选择完毕。点击Start开始下载。 Progress进度完成

9、后下载完毕。六、设计各个模块代码:1: FTCTRL模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FTCTRL ISPORT ( CLKK :IN STD_LOGIC;CNT_EN,RST_CNT :OUT STD_LOGIC;LOAD: OUT STD_LOGIC );END FTCTRL;ARCHITECTURE behav of FTCTRL ISSIGNAL DIV2CLK :STD_LOGIC :=0;BEGINPROCESS (CLKK) BEGINIF CLKK

10、EVENT AND CLKK=1 THEN DIV2CLK=NOT DIV2CLK;END IF;END PROCESS;PROCESS (CLKK,DIV2CLK) BEGINIF CLKK=0 AND DIV2CLK=0 THEN RST_CNT=1;ELSE RST_CNT=0;END IF;END PROCESS;LOAD =NOT DIV2CLK;CNT_EN 0);ELSIF CLKEVENT AND CLK=1 THENIF EN=1 THENIF Q10);END IF;END IF;END IF;IF Q1=1001 THEN COUT=0;ELSE COUT=1;END I

11、F;DOUT = Q1;END PROCESS;END BHV;3: REG32B锁存器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B ISPORT(LK:IN STD_LOGIC;DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(31 DOWNTO 0);END;ARCHITECTURE BHV OF REG32B ISBEGINPROCESS(LK,DIN) BEGINIF LK EVENT AND LK=1 THEN Q LED7S LED7S LED7

12、S LED7S LED7S LED7S LED7S LED7S LED7S LED7S NULL;END CASE;END PROCESS;END;5: any_10 10 分频器模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity any_10 isport (clk10:in std_logic;k:out std_logic);end;architecture bhv of any_10 issignal s : std_logic;signal c : std_logic_ve

13、ctor(3 downto 0);beginprocess(clk10,c)beginif rising_edge(clk10) thenif (c=1001) then c=0000;else c=c+1;end if;if (c=0101) then s=not s;elsif(c=0000) then s=not s;end if;end if;end process;k=s;end bhv;6: any_5 5 分频器模块library ieee;. 学习帮手 .专业整理 .use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.

14、all;entity ANY_5 isport(clk5:in std_logic;kf:out std_logic);end;architecture bhv of ANY_5 issignal c1,c2: std_logic_vector(2 downto 0);signal m1,m2: std_logic;beginprocess(clk5,c1)beginif rising_edge(clk5) thenif(c1=100) then c1=000;else c1=c1+1;end if;if(c1=001) then m1=not m1;elsif(c1=011) then m1

15、=not m1;end if; end if;end process;process(clk5,c2) beginif falling_edge(clk5) thenif(c2=100) then c2=000;else c2=c2+1;end if;if(c2=001) then m2=not m2;elsif(c2=011) then m2=not m2;end if; end if;end process;kf=m1 or m2;end bhv;7: any_16 16 分频模块library ieee;use ieee.std_logic_1164.all;use ieee.std_l

16、ogic_arith.all;use ieee.std_logic_unsigned.all;entity any_16 isport( clk_in : in std_logic;clk_out : out std_logic);end entity any_16;architecture div1 of any_16 issignal clk_outQ : std_logic ;signal coutQ : std_logic_vector (15 downto 0);beginprocess(clk_in) beginif clk_inevent and clk_in = 1 then.

17、 学习帮手 .专业整理 .if coutQ 15then coutQ = coutQ + 1;else coutQ 0); end if; end if;end process;process(coutQ) beginif coutQ 16/2thenclk_outQ = 0;else clk_outQ = 1;end if;end process;clk_out = clk_outQ;end architecture div1;8: MUX多路选择器模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;

18、use ieee.std_logic_unsigned.all;entity MUX isport(AIN,BIN,CIN,DIN,S0,S1 : in std_logic;Y : out std_logic);end entity MUX;architecture A of MUX issignal S : std_logic_vector (1 downto 0);beginS Y Y Y YC8,CNT_EN=NE,RST_CNT=NR,LOAD=NL);U2:REG32B PORT MAP(LK=NL,DIN(3 DOWNTO 0)=N1,DIN(7 DOWNTO 4)=N2,DIN(

19、11 DOWNTO 8)=N3,DIN(15 DOWNTO 12)=N4,DIN(19 DOWNTO 16)=N5,DIN(23 DOWNTO 20)=N6,DIN(27 DOWNTO 24)=N7,DIN(31 DOWNTO 28)=N8,Q(3 DOWNTO 0)=L1,Q(7 DOWNTO 4)=L2,Q(11 DOWNTO 8)=L3,Q(15 DOWNTO 12)=L4,Q(19 DOWNTO 16)=L5,Q(23 DOWNTO 20)=L6,Q(27 DOWNTO 24)=L7,Q(31 DOWNTO 28)=L8);U3:CNT10 PORT MAP(RST=NR,EN=NE,

20、CLK=YY,DOUT=N1,COUT=M1);-U4:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M1,DOUT=N2,COUT=M2);U5:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M2,DOUT=N3,COUT=M3);U6:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M3,DOUT=N4,COUT=M4);U7:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M4,DOUT=N5,COUT=M5);U8:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M5,DOUT=N6,COUT=M6);

21、U9:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M6,DOUT=N7,COUT=M7);U10:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M7,DOUT=N8);U11:DECL7S PORT MAP(A = L1,LED7S=QOUT(6 DOWNTO 0);U12:DECL7S PORT MAP(A = L2,LED7S=QOUT(13 DOWNTO 7);U13:DECL7S PORT MAP(A = L3,LED7S=QOUT(20 DOWNTO 14);U14:DECL7S PORT MAP(A = L4,LED7S=QOUT(27 DOW

22、NTO 21);U15:DECL7S PORT MAP(A = L5,LED7S=QOUT(34 DOWNTO 28);U16:DECL7S PORT MAP(A = L6,LED7S=QOUT(41 DOWNTO 35);U17:DECL7S PORT MAP(A = L7,LED7S=QOUT(48 DOWNTO 42);U18:DECL7S PORT MAP(A = L8,LED7S=QOUT(55 DOWNTO 49);U19:any_10 PORT MAP(CLK,C1);U20:any_10 PORT MAP(C1,C2);U21:any_10 PORT MAP(C2,C3);U2

23、2:any_10 PORT MAP(C3,C4);U23:any_10 PORT MAP(C4,C5);U24:any_10 PORT MAP(C5,C6);U25:any_10 PORT MAP(C6,C7);U26:any_5 PORT MAP(C7,C8);U27:MUXPORT MAP(Y1,Y2,Y3,FFIN,S0,S1,YY);U28:any_5 PORT MAP(FFIN,Y1);U29:any_16 PORT MAP(FFIN,Y2);U30:any_10 PORT MAP(FFIN,Y3);. 学习帮手 .专业整理 .END ARCHITECTURE;七、总电路:1234.

24、 学习帮手 .专业整理 .八、管脚配置:CLOCK2_50 Input PIN_AG14 CLKHEX46 Output PIN_AE18 QOUT34CLOCK3_50 Input PIN_AG15 FFINHEX45 Output PIN_AF19 QOUT33HEX06 Output PIN_H22 QOUT6HEX44 Output PIN_AE19 QOUT32HEX05 Output PIN_J22QOUT5HEX43 Output PIN_AH21 QOUT31HEX04 Output PIN_L25 QOUT4HEX42 Output PIN_AG21 QOUT30HEX03

25、Output PIN_L26 QOUT3HEX41 Output PIN_AA19 QOUT29HEX02 Output PIN_E17 QOUT2HEX40 Output PIN_AB19 QOUT28HEX01 Output PIN_F22 QOUT1HEX56 Output PIN_AH18 QOUT41HEX00 Output PIN_G18 QOUT0HEX55 Output PIN_AF18 QOUT40HEX16 Output PIN_U24 QOUT13HEX54 Output PIN_AG19 QOUT39HEX15 Output PIN_U23 QOUT12HEX53 Output PIN_AH19 QOUT38HEX14 Output PIN_W25 QOUT11HEX52 Output PIN_AB18 QOUT37HEX13 Output PIN_W22 QOUT10HEX51 Output PIN_AC18 QOUT36HEX12 Output PIN_W21 QOUT9HEX50 Output PIN_AD18 QOUT35HEX11 Output PIN_Y22 QOUT8HEX66 Output PIN_AC17 QOUT48HEX10 Output PIN_M24 QOU

温馨提示

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

评论

0/150

提交评论