ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:202.13KB ,
资源ID:25820509      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25820509.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于VHDL语言的频率计设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于VHDL语言的频率计设计.docx

1、基于VHDL语言的频率计设计一、 课程设计任务: 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

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

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

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

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

6、8个译码器。5、分频器模块由于实验箱只提供50MHz的信号,所以需要分频得到1Hz的信号以及不同的频率进行测试,所以需要分频器。本设计分频器采用的是5分频器any_5、10分频器any_10和16分频器any_16。6、MUX多路选择器模块。由于实验箱提供的信号源有限,所以要进行测试,必须使用多路选择器来进行对不同的分频信号进行测试来验证频率计的功能是否完成。本次设计采用的是4选1多路选择器。7、器件连接:以上各部份器件已经完善。需要将这些器件连接起来完成最终的设计,所以本次设计采取了元件例化,用例化语句将各个器件连接起来。顶层文件见代码段。8、操作过程: A建立项目 B选择器件: 器件系列(

7、Device Family) Cyclone IV E 器件型号(Available Devices) EP4CE115F29C7 C建立设计文档,new vhdl file,并编辑保存。 D点击按键栏(或Processing菜单中)的Start compilation 进行编译 E编译正确完成后,点击按键栏(或Assignments菜单中)的Pin Planner进行引脚锁定 F双击Location栏,在下拉菜单中选择需要锁定的引脚(EP4C115F芯片引脚分布详见附录) G再次编译项目 H连接实验箱 I 程序下载 点击按键栏(或Tools菜单)的Programmer,此时没有添加硬件,点击

8、Hardware Setup选择硬件。在Currently selected hardware下拉菜单中选择USB-Blaster后,点击Close,回到Programmer页面。在Hardware Setup栏中可看到USB-Blaster。注意Mode为缺省的JTAG接口硬件选择完毕。点击Start开始下载。Progress进度完成后下载完毕。6、设计各个模块代码:1:FTCTRL模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FTCTRL ISPORT ( CLKK :IN

9、 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 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;EL

10、SE RST_CNT=0;END IF;END PROCESS;LOAD =NOT DIV2CLK;CNT_EN 0); ELSIF CLKEVENT AND CLK=1 THEN IF EN=1 THEN IF Q10); END IF; END IF;END IF;IF Q1=1001 THEN COUT=0; ELSE COUT=1;END IF;DOUT = Q1;END PROCESS;END BHV; 3:REG32B锁存器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B IS PORT(LK:IN STD_LOGIC

11、; DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(31 DOWNTO 0);END;ARCHITECTURE BHV OF REG32B IS BEGIN PROCESS(LK,DIN) BEGIN IF LK EVENT AND LK=1 THEN Q LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S NULL; END CASE; END PROCESS; END; 5:any_10 10分频器模块library ieee;use ieee.st

12、d_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 is signal s : std_logic; signal c : std_logic_vector(3 downto 0);beginprocess(clk10,c)begin if rising_edge(clk10) then if (c=1001) then c=0000; else c=c+1;end if

13、; 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.all;entity ANY_5 isport(clk5:in std_logic; kf:out std_logic);end;architecture bhv of ANY_5 is signal c1,c2: std_logic_vecto

14、r(2 downto 0); signal m1,m2: std_logic;beginprocess(clk5,c1) begin if rising_edge(clk5) then if(c1=100) then c1=000; else c1=c1+1;end if; if(c1=001) then m1=not m1; elsif(c1=011) then m1=not m1;end if; end if;end process;process(clk5,c2) begin if falling_edge(clk5) then if(c2=100) then c2=000; else

15、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_logic_arith.all;use ieee.std_logic_unsigned.all;entity any_16 is port( clk_in : in std_logic; clk_out : out std_

16、logic);end entity any_16; architecture div1 of any_16 is signal clk_outQ : std_logic ; signal coutQ : std_logic_vector (15 downto 0);beginprocess(clk_in) begin if clk_inevent and clk_in = 1 then if coutQ 15 then coutQ = coutQ + 1; else coutQ 0); end if; end if; end process;process(coutQ) begin if co

17、utQ 16/2 then clk_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;use ieee.std_logic_unsigned.all;entity MUX is port(AIN,BIN,CIN,DIN,S0,S1 : in std_logic; Y : out std_logic);e

18、nd entity MUX; architecture A of MUX is signal 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(11 DOWNTO 8)=N3,DIN(15 DOWNTO 12)=N4, DIN(19 DOWNTO 16)=N5,DIN(23 DOWNTO 20)=N6, DIN(27 DOWNTO 24)=N7,D

19、IN(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,CLK=YY,DOUT=N1,COUT=M1);-U4:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M1,DOUT=N2,COUT=M2);U5:CNT10 PORT MAP

20、(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);U9:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M6,DOUT=N7,COUT=M7);U10:CNT10 PORT MAP(RST=NR,EN=NE,CLK=M7,DOU

21、T=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 DOWNTO 21);U15:DECL7S PORT MAP(A = L5,LED7S=QOUT(34 DOWNTO 28);U16:DECL7S PORT MAP(A = L6,LED7S=QOUT

22、(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);U22: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:MUX PORT MAP(Y1,Y2,Y3,FFIN,S0,S1,YY);U28:any_5 PORT MAP(FFI

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1