基于vhdl语言的8位数字频率计的设计
-
论文要求:测量从1Hz到9999的信号频率,并将被测信 的频率在数码管上显示出来,采用文本和图形混合设计的方法! 请高人指点一下!我实在是不懂,Z好能给我发一份设计,邮箱是945876736@qq.com!万分感谢!!!!
全部评论(2条)
-
- 允孽·蕞嗳 2010-03-15 00:00:00
- 1 引言 2 2 八位数字频率计的总体设计 4 3 vhdl的简述 5 3.1 vhdl的发展 5 3.2 vhdl的特点 5 3.3 vhdl语言结构 6 3.3.1 实体(ENTITY) 7 3.3.2 结构体(ARCHITECTURE) 8 3.4 VHDL软件设计简介 9 4 利用VHDL语言设计频率计 10 4.l 系统功能的分析与电路设置 10 4.2 测频原理 11 4.3 测频专用模块工作功能描述及VHDL程序 13 4.3.1 FCH 13 4.3.2 计数器模块(CNT1/CNT2) 14 4.3.3 控制模块(CONTRL) 16 4.3.4 脉冲宽度和占空比测量模块设计 18 4.3.5 GATE 21 4.3.6 测频/测周期实现 22 4.3.7 测频主系统实现 23 5 硬件电路的制作与调试 25 6 多功能数字频率计仿真及分析 26 6.1 MAX+PLUSⅡ的特点 26 6.2 基于MAX+PLUSⅡ的数字集成电路设计过程 27 6.3 多功能数字频率计仿真及分析 28 结语29 致谢 30 参考文献 31 看下有没有收到啊 ????????
-
赞(15)
回复(0)
-
- jinjing_197201 2010-03-16 00:00:00
- 实验目的: 设计一个4位十进制频率计,学习复杂数字系统的设计方法。 实验原理: 根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的脉冲计数允许信号,1秒计数结束后,计数值(即所测信号频率)锁入锁存器,并为下一次测频作准备,即将计数器清零。 试验内容: 1、根据频率计的工作原理,将电路划分成控制器、计数器、锁存器和LED显示几个模块, 控制器——产生1秒脉宽的计数允许信号、锁存信号和计数器清零信号 计数器——对输入信号的脉冲数进行累计 锁存器——锁存测得的频率值 LED显示——将频率值显示在数码管上 顶层文件框图如下: 2、用元件例化语句写出频率计的顶层文件。 提示:十进制计数器输出的应是4位十进制数的BCD码,因此输出一共是4×4bit。 实验结果: 各模块电路的VHDL描述: 10进制计数器 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt10 is port (rst,fx,ena:in std_logic; cout: out std_logic; outy :out std_logic_vector(3 downto 0)); end cnt10; architecture behv of cnt10 is begin process (rst,ena,fx) variable cqi :std_logic_vector(3 downto 0); begin if rst='1' then cqi :=(others =>'0'); elsif fx'event and fx='1' then if ena ='1' then if cqi < 9 then cqi:=cqi+1;cout<='0'; elsif cqi=9 then cqi :=(others =>'0'); cout<='1'; end if; elsif ena='0' then cqi:=(others =>'0'); end if; end if; outy <=cqi; end process; end behv; 4位10进计数器 library ieee; use ieee.std_logic_1164.all; entity cnt10_4 is port(fx,rst,ena:in std_logic; d:out std_logic_vector(15 downto 0)); end entity; architecture one of cnt10_4 is component cnt10 port (rst,fx,ena:in std_logic; cout: out std_logic; outy :out std_logic_vector(3 downto 0)); end component; signal e:std_logic_vector(3 downto 0); begin u1:cnt10 port map(fx=>fx,rst=>rst,ena=>ena,cout=>e(0),outy=>d(3 downto 0)); u2:cnt10 port map(fx=>e(0),rst=>rst,ena=>ena,cout=>e(1),outy=>d(7 downto 4)); u3:cnt10 port map(fx=>e(1),rst=>rst,ena=>ena,cout=>e(2),outy=>d(11 downto 8)); u4:cnt10 port map(fx=>e(2),rst=>rst,ena=>ena,cout=>e(3),outy=>d(15 downto 12)); end architecture one; 16位锁存器 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity latch4 is port(d:in std_logic_vector(15 downto 0); ena,clk:in std_logic; q:out std_logic_vector(15 downto 0)); end latch4; architecture one of latch4 is begin process(clk,ena,d) variable cqi:std_logic_vector(15 downto 0); begin if ena='0' then cqi:=cqi; elsif clk'event and clk='1' then cqi:=d; end if; q<=cqi; end process; end one; LED控制模块 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity led_controller is port(d:in std_logic_vector(3 downto 0); a:out std_logic_vector(6 downto 0)); end led_controller; architecture one of led_controller is begin process(d) begin case d is when "0000"=> a<="0111111";when "0001"=> a<="0000110"; when "0010"=> a<="1011011";when "0011"=> a<="1001111"; when "0100"=> a<="1100110";when "0101"=> a<="1101101"; when "0110"=> a<="1111101";when "0111"=> a<="0000111"; when "1000"=> a<="1111111";when "1001"=> a<="1101111"; when "1010"=> a<="1110111";when "1011"=> a<="1111100"; when "1100"=> a<="0111001";when "1101"=> a<="1011110"; when "1110"=> a<="1111001";when "1111"=> a<="1110001"; when others=> null; end case; end process; end; 控制模块 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity control is port (clk:in std_logic; rst,ena: out std_logic); end control; architecture behv of control is begin process (clk) variable cqi :std_logic_vector(2 downto 0); begin if clk'event and clk='1' then if cqi <1 then cqi:=cqi+1;ena<='1';rst<='0'; elsif cqi=1 then cqi :=(others =>'0'); ena<='0';rst<='1'; end if; end if; end process; end behv; 总体例化语句: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cntf is port(rset,clk:in std_logic; fx:in std_logic; ledout:out std_logic_vector(27 downto 0)); end entity; architecture one of cntf is component control port (clk:in std_logic; rst,ena: out std_logic); end component; component cnt10_4 port(fx,rst,ena:in std_logic; d:out std_logic_vector(15 downto 0)); end component; component latch4 port(d:in std_logic_vector(15 downto 0); ena,clk:in std_logic; q:out std_logic_vector(15 downto 0)); end component; component led_controller port(d:in std_logic_vector(3 downto 0); a:out std_logic_vector(6 downto 0)); end component; signal x,z:std_logic; signal g,h:std_logic_vector(15 downto 0); signal leds:std_logic_vector(27 downto 0); begin u1: control port map(clk=>clk,ena=>x,rst=>z); u2: cnt10_4 port map(fx=>fx,rst=>z,ena=>x,d=>g); u3: latch4 port map(clk=>clk,ena=>x,d=>g,q=>h); u4: led_controller port map(d(3 downto 0)=>h(3 downto 0),a(6 downto 0)=>leds(6 downto 0)); u5: led_controller port map(d(3 downto 0)=>h(7 downto 4),a(6 downto 0)=>leds(13 downto 7)); u6: led_controller port map(d(3 downto 0)=>h(11 downto 8),a(6 downto 0)=>leds(20 downto 14)); u7: led_controller port map(d(3 downto 0)=>h(15 downto 12),a(6 downto 0)=>leds(27 downto 21)); ledout<=leds; end; 这是我当时做的一个4位频率计,CLK为一个1HZ的时钟信号。可用数码管显示出频率数的。只要你能读懂原理,是很容易改成八位的。 如果要图文混合设计,即各模块设计好后,顶层文件用原理图设计即可。给你参考一下吧。
-
赞(7)
回复(0)
热门问答
- 基于vhdl语言的8位数字频率计的设计
- 论文要求:测量从1Hz到9999的信号频率,并将被测信 的频率在数码管上显示出来,采用文本和图形混合设计的方法! 请高人指点一下!我实在是不懂,Z好能给我发一份设计,邮箱是945876736@qq.com!万分感谢!!!!
2010-03-14 18:18:36
285
2
- 基于VHDL的数字频率计
2011-08-13 05:50:24
239
1
- 求用VHDL语言设计一数字频率计
- 1,输入为矩形脉冲,频率范围0-99MHZ, 2,用五位数码管显示,只显示Z后结果,过程无需显示 3,单位为HZ KMZ两档,自动切换
2011-12-16 02:41:05
295
2
- 求助,8位十进制数字频率计的设计
2017-01-07 01:38:32
435
1
- VHDL语言设计滤波器
- 设计FIR低通滤波器,系统频率为50MHz,通带截止频率Fpass为1MHz,阻带截止频率Fstop为4MHz,通带Z大衰减Apass为1dB,阻带Z小衰减Astop为30dB。 程序和必要的程序注释 谢谢
2011-06-19 05:59:16
235
1
- 如何用VHDL语言实现8位十进制数字频率计,恳请高手帮忙,求程序啊
2011-06-27 01:41:01
295
2
- 基于EDA的8位十进制频率计设计
2016-03-03 23:24:11
323
1
- 基于51单片机的数字频率计设计资料。要C语言的,谢谢。
- 问题补充:需要原理图,源程序,等等。Z好是自己做完了调试能用的。 有资料的请把完整的资料发到chenfeng_0213@163.com谢谢。
2010-12-01 18:26:10
351
2
- 用VHDL语言设计一个频率计
- 问题补充是: 用于测量1M Hz 以下数字脉冲信号的频率。闸门只有1S一档。测量结果在数码管上显示出来。不测信号脉宽,在实验台上完成调试。 (2)设计提示 ①频率计的基本工作原理如下:首先产生一系列准确闸门信号,例如1mS、0.1S和1S等,然后用这些闸门信号控... 问题补充是: 用于测量1M Hz 以下数字脉冲信号的频率。闸门只有1S一档。测量结果在数码管上显示出来。不测信号脉宽,在实验台上完成调试。 (2)设计提示 ①频率计的基本工作原理如下:首先产生一系列准确闸门信号,例如1mS、0.1S和1S等,然后用这些闸门信号控制一个计数器对被测脉冲进行计数,Z后将结果显示出来。如果闸门信号是1S,那么1S内计数的结果就是被测信号的频率。如果闸门信号是1mS,那么计数结果是被测信号频率的千分之一,或者说结果是以KHz为单位的频率值。 ②频率计中,Z原始的时基信号准确度一定要高。用实验台上的100KHz时钟信号作原始时基信号。 ③1S的闸门信号是由100KHz时钟经5次10分频后,再经2分频产生。这样产生的闸门信号脉宽是1S,占空比是50%。在2S的时间内,1S用于计数,1S用于显示结果。 ④用于被测信号计数的计数器应采用十进制。测得的结果可直接送实验台上的六个数码管显示。每次对被测信号计数前,计数器应被清零。 展开
2016-05-05 04:35:34
337
1
- 简易数字频率计 verilog语言设计
- 要求:1、设计一个数字频率计,闸门时间为1秒,Z高可测频率为100Mhz. 2、频率由8位数码管显示输出。
2014-06-30 06:21:07
470
1
- 基于单片机数字频率计设计汇编语言程序的设计思路
- 一、 设计目的 ——掌握数字量数据采集系统的设计方法。 二、技术指标 1.测量范围:0~200K 2.测量信号:方波 3.测量信号电压:3~5V 4.闸门时间:10mS、0.1S、1S 5.显示位数:6位 三、设计方案 根据技术要求,可确定出该数字频率计应由测量电路... 一、 设计目的 ——掌握数字量数据采集系统的设计方法。 二、技术指标 1.测量范围:0~200K 2.测量信号:方波 3.测量信号电压:3~5V 4.闸门时间:10mS、0.1S、1S 5.显示位数:6位 三、设计方案 根据技术要求,可确定出该数字频率计应由测量电路(包括量程标定电路和ADC)、单片机、键盘及显示电路几个组成部分,各部分采用的电路形式及主要器件确定如下: (1)单片机部分 选用89C51单片机作为主机,同时要设计89C51单片机的晶振电路和复位电路,具体电路略。 (2)测量电路部分 直接利用单片机内部的定时/计数器实现频率的测量。 (3)键盘、显示部分 本机需配置具有3个按键的键盘和6位数字LED的显示器。具体电路参见实验箱电路图4、5。 测量频率范围:1-1000HZ 闸门时间1S,单位(HZ) 1K-10K 闸门时间0.1S (计数值×10),单位(KHZ) 10k-200k 闸门时间10mS(计数值×100)单位(KHZ) 用按键选择测量范围。 图4 显示器电路连接图 图5 键盘电路连接图 图6 等精度测量数字频率计电路图 展开
2014-06-06 05:07:53
264
1
- 基于FPGA数字频率计相位差测量电路的设计
- 1、 题目内容 本设计采用单片机和现场可编程门阵列(FPGA)作为数字相位差计的核心部分。考虑到FPGA具有集成度高,I/O资源丰富,稳定可靠,可现场在线编程等优点,而单片机具有很好的人机接口和运算控制功能,本设计拟用FPGA和单片机相结合,构成整个书记的测... 1、 题目内容 本设计采用单片机和现场可编程门阵列(FPGA)作为数字相位差计的核心部分。考虑到FPGA具有集成度高,I/O资源丰富,稳定可靠,可现场在线编程等优点,而单片机具有很好的人机接口和运算控制功能,本设计拟用FPGA和单片机相结合,构成整个书记的测控主体。其中,FPGA主要负责采集两个待测信号相位差所对应的时间差,而单片机则负责读取FPGA采集到的数据,并根据这些数据计算待测信号的相位差,同时显示出待测信号相位差。整个系统发挥了FPGA各自的优势,具有高速而可靠的测控能力,具有比较强的数据处理能力,键盘输入及显示控制比较灵活,系统可扩展性能比较好,整个系统性价比比较好。 2、设计的要求 一、 基本要求 设计一个相位差测量电路 (1)频率范围:20Hz~100kHz。 (2)相位测量仪的输入阻抗≥100kΩ。 (3)相位测量误差≤2°。 (4)相位差数字显示:相位读数为0°~359.9°,分辨力为0.1°。 (5)允许两路输入方波信号峰-峰值可分别在2.5V~5V范围内变化。 二、 发挥部分 (1)能够测量频率。 (2)能够测量占空比。 (3)在保持相位测量仪测量误差和频率范围不变的条件下,扩展相位测量仪输入正弦电压峰-峰值至0.3V~5V范围。 (4)扩大测量波形范围。 由于本人大四上班了,没有时间做毕业设计,有的论文给小弟发一份,小弟不胜感激 邮箱:1071651353@qq.com 谢谢 可以后续加分的哦 展开
2012-02-28 06:24:32
390
2
- 基于51单片机的数字频率计设计(proteus仿真)
- 要求:实现外部方波,三角波,正弦波,锯齿波等常用波形的频率测量 (硬件设计,软件设计)
2012-06-03 00:12:36
416
3
- 跪求基于单片机数字频率计设计?(按要求)
- (一)任务 利用单片机设计并制作简易的数字频率计,电路组成框图如图所示。 (二)要求 1.基本要求 (1)能测量10HZ~500KHZ的方波。 (2)利用数码管或者液晶显示器显示频率。 (2.扩展部分(选作) (1)测量频率范围10HZ~2MHZ; ... (一)任务 利用单片机设计并制作简易的数字频率计,电路组成框图如图所示。 (二)要求 1.基本要求 (1)能测量10HZ~500KHZ的方波。 (2)利用数码管或者液晶显示器显示频率。 (2.扩展部分(选作) (1)测量频率范围10HZ~2MHZ; (2)可以测量正弦波,三角波; (3)声音播报频率值; (4)其它。 展开
2011-05-23 02:35:27
457
4
- 基于nois2频率计设计可以用什么语言
2015-03-29 00:36:58
342
1
- 基于FPGA的数字频率计
- 不要子模块,,要一个完整的代码,不用调用,直接可以编译的。。拜托了。。。。是用的VHDL语言。。
2016-02-12 15:47:21
273
1
- 数字频率计的设计
- 二、数字频率计的设计 任务书 1、 简要说明: 根据频率计的测频原理,按照测频量程需要,选择合适的时基信号即闸门时间,对输入被测信号进行计数,实现测频的目的。 2、 任务和要求: 设计一个3位十进制数字显示的数字式频率计,其频率测量范围在1MHz内。... 二、数字频率计的设计 任务书 1、 简要说明: 根据频率计的测频原理,按照测频量程需要,选择合适的时基信号即闸门时间,对输入被测信号进行计数,实现测频的目的。 2、 任务和要求: 设计一个3位十进制数字显示的数字式频率计,其频率测量范围在1MHz内。量程分为10kHz、100kHz和1MHz三挡,即Z大读数分别为9.99 kHz、99.9 kHz和999 kHz。这里要求量程能够自动转换,具体要求如下: ① 当读数大于999时,频率计处于超量程状态,下一次测量时,量程自动增大1档; ② 当读数小于099时,频率计处于欠量程状态,下一次测量时,量程自动减小1档; ③ 当超过频率测量范围时,显示器溢出; ④ 采用记忆显示方式即计数过程中不显示数据,待计数过程结束后,显示测频结果,并将此显示结果保持到下次计数结束、显示时间不短于1s; ⑤ 小数点位置随量程变化自动移位; ⑥ 选做:增加测周期功能(量程为1ms、10ms、100ms三档,即Z大读书为9.99ms,99.9ms和999ms) 用MAX-PLUSII或能实现的程序或者QUARTUS实现,好了追加100分,C语言的不行啊!用verilog HDL语言写。尽量详细些,Z好是以报告或论文的形式。程序要有注释 展开
2008-09-04 21:49:36
381
3
- 高分求基于VHDL简易数字频率计源程序 ,要求程序以module开头
2018-11-26 15:01:21
377
0
- 求基于EDA的数字频率计
- 求基于EDA的数字频率计 要求: 1、输入为矩形脉冲,频率范围0~99MHz; 2、用五位数码管显示;只显示Z后的结果,不要将计数过程显示出来; 3、单位为Hz和KHz两档,自动切换。 谁帮个忙啊,谢谢啦!!
2018-11-30 23:32:45
389
0
- 电子设计:数字频率计的设计
- 要求1HZ--10KHZ,测量方波,三角波,正弦波,幅值0.5-5V,电子设计,不用单片机,有没有那个好心人有multism的电路图啊,还有设计资料,资料可以发邮箱,1693099355@qq.com(回答的好一定给高分。)
2018-11-19 09:22:42
243
0
参与评论
登录后参与评论