分频器设计 VHDL

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档