车厘子妈妈
这是大规模数字集成电路在系统可编程领域的经典课程设计。数字频率计是近代电子技术领域的重要测量工具之一,同时也是其他许多领域广泛应用的测量仪器。数字频率计是在规定的基准时间内把测量的脉冲数记录下来,换算成频率并以数字形式显示出来。数字频率计用于测量信号(方波,正弦波或其他周期信号)的频率,并用十进制数字显示,它具有精度高,测量速度快,读数直观,使用方便等优点。一个用VHDL语言实现的实例如下:-- Project Name: 恒精度频率计-- Target Devices: FPGA or CPLD-- Revision - File Created-- Comments: clk--系统工作时钟,2MHz-------------reset--系统复位信号,高电平有效-------------Fx--为待测信号-------------FreqNx--为待测信号的计数值-------------FreqNs--为标准信号的计数值-------------Freq--为待测信号的频率------------------------------------------------------------------------------------library IEEE;use ;use ;use ;----------------------------------------------------------entity Cymometer is generic(clk_freq : integer := 2000000);--系统工作时钟频率 Port ( clk : in STD_LOGIC; reset : in STD_LOGIC; Fx : in STD_LOGIC; ----待测信号 FreqNs : out natural; FreqNx : out natural); --Freq : out natural);end Cymometer;----------------------------------------------------------architecture Behavioral of Cymometer is---------------------------------------- signal start : STD_LOGIC;--此信号为高电平时计数器开始计数 signal CTRL : STD_LOGIC;--CTRL信号为待测信号和门控信号产生的计数器启动信号 signal CNTx : natural;--待测信号计数器 signal CNTs : natural;--标准信号计数器----------------------------------------begin--***************************************----产生一个门控信号,高电平有效 GateCtrl : process(clk) --------------------------- variable CNT0 : integer range 0 to 2_097_152;--门控信号计数器 --------------------------- begin if rising_edge(clk) then if reset='1' then CNT0 := 0; else CNT0 := CNT0 + 1; end if; --------- if reset='1' then start <= '0'; elsif CNT0 < (clk_freq*3/4) then start <= '1'; else start <= '0'; end if; end if; end process GateCtrl;--***************************************----产生CTRL信号,由待测信号和门控信号产生的计数器启动信号 CtrlGen : process(Fx) begin if rising_edge(Fx) then if reset='1' then CTRL <= '0'; else CTRL <= start; end if; end if; end process CtrlGen;--***************************************----用两个计数器分别对标准信号clk和待测信号signal计数------------------------------------计数标准信号,CTRL高电平期间有效 CountS : process(clk) begin if rising_edge(clk) then if reset='1' then CNTs <= 0; elsif CTRL='1' then CNTs <= CNTs + 1; else CNTs <= 0; end if; end if; end process CountS;------------------------------------计数待测信号,CTRL高电平期间有效 CountX : process(Fx) begin if rising_edge(Fx) then if reset='1' then CNTx <= 0; elsif CTRL='1' then CNTx <= CNTx + 1; else CNTx <= 0; end if; end if; end process CountX;--***************************************----CTRL下降沿将技术结果和测量值输出 CountOut : process(CTRL) begin if falling_edge(CTRL) then if reset='1' then FreqNs <= 0; FreqNx <= 0;-- Freq <= 0; else FreqNs <= CNTs; FreqNx <= CNTx;-- Freq <= (clk_freq / CNTs * CNTx); end if; end if; end process CountOut;end Behavioral;下面是为上面的模块编写的测试平台,在Modelsim下仿真通过,因为数据量较大,建议不要使用Altera及ISE仿真。--------------------------------------------------------------------------------LIBRARY ieee;USE ;USE ;USE ; ENTITY tb ISEND tb; ARCHITECTURE behavior OF tb IS -- Component Declaration for the Unit Under Test (UUT) COMPONENT Cymometer PORT( clk : IN std_logic; reset : IN std_logic; Fx : IN std_logic; FreqNs : OUT natural; FreqNx : OUT natural; Freq : OUT natural ); END COMPONENT;--Inputs signal clk : std_logic := '0'; signal reset : std_logic := '1'; signal Fx : std_logic := '0'; --Outputs signal FreqNs : natural; signal FreqNx : natural;-- signal Freq : natural; -- Clock period definitions constant clk_period : time := 500ns; BEGIN -- Instantiate the Unit Under Test (UUT) uut: Cymometer PORT MAP ( clk => clk, reset => reset, Fx => Fx, FreqNs => FreqNs, FreqNx => FreqNx, -- Freq => Freq ); -- Clock process definitions clk_process :process begin clk <= '0'; wait for clk_period/2; clk <= '1'; wait for clk_period/2; end process; --产生待测信号 Fx_process : process begin Fx <= '0'; wait for 2*clk_period; Fx <= '1'; wait for 2*clk_period; end process; -- Stimulus process stim_proc: process begin -- hold reset state for 100ms. wait for clk_period*10; reset <= '0'; -- insert stimulus here wait; end process;END;参考原理M/T测频法。
45度向上傾斜
这个东西难度其实不大,比跑马灯复杂一点,最关键的就是在草纸上把状态图设计好找点好的vhdl工程介绍的书或者电子书学学就好了。初学者应该有20天就差不多能搭个简易的仿真模型了。所谓的逻辑设计,实际上就是层窗户纸,有一两个实际项目经验后就简单了当然开始的入门是比较痛苦的,这个我比较理解,如果有实际遇到的问题可以给我留言,但如果想要走捷径要整个解决方案那就算了,没意思的。
AppleApple是苹果
1、 用FPGA实现控制基于I2C总线的EEPROM 2、 基于FPGA的简单OEM板GPS接收机设计 3、 基于FPGAD的数字频率计设计 4、 [电气工程]基于FPGA的电网基本电量数字测量系统的设计 5、 [电子信息工程]基于单片机和FPGA的位同步信号提取 6、 基于FPGA的数字通信系统 7、 基于FPGA和锁相环4046实现波形发生器 8、 UC/OSII在FPGA上的移植 9、 基于FPGA的IIR滤波器设计 10、 基于FPGA的TD-SCDMA信道编解码技术研究与实现(硕士) 11、 基于ARM和FPGA的数控系统的硬件设计(硕士) 12、 基于FPGA的JPEG压缩编码的研究与实现(硕士) 13、 OFDM通信系统基带数据处理部分的FPGA实现 14、 FPGA应用实验板设计 15、 UWB-OFDM解调器的仿真及FPGA在线仿真实现 16、 高速VITERBI译码器在ALTERA FPGA中的设计与实现 17、 基于FPGA温、湿度传感器系统设计 18、 基于FPGA的嵌入式系统开发板 19、 卫星信道延时模拟器的FPGA实现 20、 基于Altera FPGA的发动机ECU原型设计 21、 基于FPGA设计电梯控制系统 22、 FPGA在机卡分离式高清数字一体电视机里的应用 23、 PSK调制算法仿真与FPGA实现 24、 基于FPGA的数字复接系统帧同步器的设计
可爱滴娃
1、频率计嘛就是用来测试信号频率的啊!2、用FPGA来做就最简单不过了!3、我做了一个频率范围在,一点都不夸张的,而且精度还很高,比你想象的要高的多!4、软件设计就只要QUARTUS II,很好做的也很容易!5、就连报告也都有的!
天下没有免费的午餐
五大热门MBA论文选题方向汇总 1、论企业核心竞争力 核心竞争力的理论渊源;核心竞争力的基本内涵及理论体系;该理论的基本命题研究,如积累性学识、路径依赖、边际搜
可以提高大脑与身体的协调能力,增强臂力,锻炼身体,在游戏的同时学着思考,简单的游戏还可以让孩子性格更加活泼。 1、打地鼠 下蹲运动能很
VHDL编写"111010101 "序列发生器流水灯显示的实现,原代码如下(仿真结果见图) LIBRARY ieee; use ieee.std_logic_1
非立项 这您的具体研究题目这个方案能完善的