分频器设计 VHDL
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称电子设计自动化实验(基于FPGA)实验项目分频器设计(计数器设计)实验仪器计算机+ Quartus Ⅱ9.1
系别信息与通信工程学院
专业通信工程
班级/学号
学生姓名
实验日期2012、5
成绩_______________________ 指导教师_______________________
分频器设计(计数器设计)
利用VHDL语言,设计一个输入1MHz脉冲,分频后能产生100kHz、10kHz、1kHz、100Hz、10Hz、1Hz时钟脉冲产生电路。
(1)实验要求
①利用VHDL语言编程;
②利用仿真软件进行功能仿真;
③编程下载到EP1C6Q240C8器件中,利用EDA/SOPC实验装置进行验证。
(2)实验设计注意事项
实验要求每相差十倍频率都有脉冲输出,故采用十进制计数器对信号分频设计方法较为简单。将十进制计数器做成COMPONENT,利用元件例化语句实现调用。电路采用异步工作方式。
(3)VHDL代码
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
USE IEEE.std_logic_arith.all;
USE IEEE.std_logic_unsigned.all;
ENTITY fenpin10 IS
PORT(i:in std_logic;
o:inout std_logic);
END ENTITY;
ARCHITECTURE func OF fenpin10 IS
SIGNAL count:std_logic_vector(3 downto 0);
SIGNAL tmp:std_logic;
BEGIN
PROCESS(i)
BEGIN
IF(i'EVENT AND i = '1') THEN
IF(count = "1001") THEN --当计数满9时进位
count <= (OTHERS => '0');
tmp <= NOT tmp;
ELSE
count <= count + 1;
END IF;
END IF;
END PROCESS;
o <= tmp;
END ARCHITECTURE;
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
USE IEEE.std_logic_arith.all;
USE IEEE.std_logic_unsigned.all;
ENTITY fenpin IS
PORT(clk:in std_logic;
div_10:buffer std_logic;
div_100:buffer std_logic;
div_1000:buffer std_logic;
div_10000:buffer std_logic;
div_100000:buffer std_logic;
div_1000000:buffer std_logic);
END ENTITY;
ARCHITECTURE func OF fenpin IS
COMPONENT fenpin10 --元件例化
PORT(i:in std_logic;
o:inout std_logic);
END COMPONENT;
SIGNAL x0,x1,x2,x3,x4,x5:std_logic;
BEGIN
u1:fenpin10 PORT MAP(i => clk, o => x0);
u2:fenpin10 PORT MAP(x0, x1);
u3:fenpin10 PORT MAP(x1, x2);
u4:fenpin10 PORT MAP(x2, x3);
u5:fenpin10 PORT MAP(x3, x4);
u6:fenpin10 PORT MAP(x4, x5);
div_10 <= x0;
div_100 <= x1;
div_1000 <= x2;
div_10000 <= x3;
div_100000 <= x4;
div_1000000 <= x5;
END ARCHITECTURE;
(4)仿真结果
未下载验证、调试,如发现错误,见谅!
——Higashi Q83831295