您好,欢迎来到微智科技网。
搜索
您的当前位置:首页数控分频器的VHDL设计

数控分频器的VHDL设计

来源:微智科技网
实验六 数控分频器的VHDL设计

实验目的:学习数控分频器的设计、分析和测试方法。 实验项目分析设计:

数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比。其原理是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可。

实验内容1:用VHDL语言设计一个8位数控分频器。

要求:在QuartusⅡ上进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。引脚锁定以及硬件下载测试,选择目标器件EP1C3,建议选实验电路模式No.0。用键1、键2作为置数数据D的输入端,CLK接clock0,FOUT接至扬声器Speaker。(时序仿真时CLK周期设5ns~10ns,D分别设33H, FEH) 所编写的源程序如下:

LIBRARY IEEE; USE IEEE.STD_LOGIC_11.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DVF IS PORT( CLK : IN STD_lOGIC; D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); FOUT : OUT STD_LOGIC); END ENTITY DVF; ARCHITECTURE ONE OF DVF IS SIGNAL FULL: STD_LOGIC; BEGIN P_REG: PROCESS(CLK) VARIABLE CNT8: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CLK'EVENT AND CLK='1' THEN IF CNT8=\"11111111\" THEN CNT8:=D; FULL<='1'; ELSE CNT8:=CNT8+1; FULL<='0'; END IF; END IF; END PROCESS P_REG; P_DIV: PROCESS(FULL) VARIABLE CNT2: STD_LOGIC; BEGIN IF FULL'EVENT AND FULL='1' THEN CNT2:= NOT CNT2; IF CNT2='1' THEN FOUT<='1'; ELSE FOUT<='0'; END IF; END IF; END PROCESS P_DIV; END ARCHITECTURE ONE; 仿真波形如下所示:

经过硬件测试后,输入与输出满足题目要求和仿真结果。

实验内容2:将8位数控分频器扩展为16位数控分频器。 所编写的源程序如下:

LIBRARY IEEE; USE IEEE.STD_LOGIC_11.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY RXL IS PORT( CLK : IN STD_lOGIC; D : IN STD_LOGIC_VECTOR(15 DOWNTO 0); FOUT : OUT STD_LOGIC); END ENTITY RXL; ARCHITECTURE ONE OF RXL IS SIGNAL FULL: STD_LOGIC; BEGIN P_REG: PROCESS(CLK) VARIABLE CNT8: STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN IF CLK'EVENT AND CLK='1' THEN IF CNT8=\"1111111111111111\" THEN CNT8:=D; FULL<='1'; ELSE CNT8:=CNT8+1; FULL<='0'; END IF; END IF; END PROCESS P_REG; P_DIV: PROCESS(FULL) VARIABLE CNT2: STD_LOGIC; BEGIN IF FULL'EVENT AND FULL='1' THEN CNT2:= NOT CNT2; IF CNT2='1' THEN FOUT<='1'; ELSE FOUT<='0'; END IF; END IF; END PROCESS P_DIV; END ARCHITECTURE ONE; 仿真波形如下所示:

经过硬件测试后,输入与输出满足题目要求和仿真结果。

实验感想:

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务