EDA二 4位加法计数器设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6)可调时钟输出单元

底板上ADJ_CLK为4位拨码开关SW17--SW20来控制输出40M分频后的可调时钟具体对应如下

SW20 SW19 SW18 SW17 ADJ_CLK

1 1 1 1 1Hz

0 1 1 1 5Hz

1 0 1 1 10Hz

0 0 1 1 25Hz

1 1 0 1 50Hz

0 1 0 1 500Hz

1 0 0 1 1KHz

0 0 0 1 2.5KHz

1 1 1 0 10KHz

0 1 1 0 20KHz

1 0 1 0 50KHz

0 0 1 0 200KHz

1 1 0 0 500KHz

0 1 0 0 2MHz

1 0 0 0 5MHz

0 0 0 0 20MHz

CLK1 10MHz固定时钟(40MHz分频产生)

CLK2 1MHz

CLK3 100KHz

CLK4 5KHz

CLK5 100Hz

实验四 4位加法计数器设计

一、实验目的

学习时序逻辑电路的设计、仿真和硬件测试;加深理解VHDL设计技术。

二、实验原理

图4-4-1是一含计数使能、异步复位和计数值并行预置功能的4位加法计数器,其VHDL描述参见例4-4-1。由图4-4-1所示,图中间是4位锁存器(即D触发器);RST是异步清零信号,高电平有效;CLK是锁存信号;D[3..0]是4位数据输入端;PST是同步并行预置信号,高电平有效,置数值为Data[3:0];Outy[3:0]是计数值输出;Cout是计数溢出信号。

① RST为异步清零信号,高电平有效,一旦RST=1,4位锁存器输出状态复位为“0000”;

② ENA为同步计数使能信号,当CLK为上升沿时

z当ENA=“1”时,加法计数,CQI= CQI+1;

z当ENA=“0”时,保持原数,CQI= CQI;

③ PST为同步并行预置信号,当CLK为上升沿时

图4-4-1含计数使能、异步复位和计数值并行预置功能的4位加法计数器

三、实验内容

(1)对例4-4-1含计数使能、异步复位和计数值并行预置功能的4位加法计数器的VHDL设计,说明例中各语句的作用,并详细描述示例的功能特点。

(2)在例4-4-1的基础上进行修改,完成含异步清0和同步时钟使能功能的十进制加法计数器的VHDL设计,在Quartus II上对其进行编辑、编译、综合、适配、时序仿真、引脚锁定以及硬件下载,并且进行元件封装入库。

引脚锁定以及硬件下载测试:功能选择位M[3..0]状态为0001,即16位拨码SW1—SW16被选中输出到总线D[15..0],用SW1(D0)控制ENA;用SW2(D1)控制RST;Outy是计数输

出,对应IO12—IO9(用导线连接L1—L4,高位靠左),计数溢出Cout对应IO13,(用导线连接L5);时钟CLK对应IO3,用导线将ADJ_CLK与IO3相连,调节拨码SW17—SW20使输出1Hz 信号。引脚锁定后进行重新编译、下载和硬件测试实验。

四、预习要求

(1)阅读附录2,掌握时序逻辑电路的VHDL设计;

(2)完成实验内容(1)、(2)的VHDL源程序的编写,并逐行加以注释。

五、报告要求

(1)实验原理、设计过程、编译仿真波形和分析结果,以及硬件测试实验结果写进实验报告。

(2)附加实验内容的VHDL设计。

七、思考题

(1)在例4-4-1中是否可以不定义信号 CQI,而直接用输出端口信号完成加法运算,即: OUTY <= OUTY + 1 ?

(2)修改例4-4-1,用进程实现进位信号的检出。

八、参考程序

【例4-4-1】

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CNT4B IS

PORT (CLK : IN STD_LOGIC;

RST : IN STD_LOGIC;

ENA : IN STD_LOGIC;

PST : IN STD_LOGIC;

DATA : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ;

OUTY : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

COUT : OUT STD_LOGIC;

M : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)

);

END CNT4B;

ARCHITECTURE behav OF CNT4B IS

SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

M<= "0001";

P_REG: PROCESS(CLK, RST, ENA, PST)

BEGIN

IF RST = '1' THEN CQI <= "0000";

ELSIF CLK'EVENT AND CLK = '1' THEN

IF PST = '1' THEN CQI <= DATA;

ELSIF ENA = '1' THEN CQI <= CQI + 1;

ELSE CQI <= CQI;

END IF;

END IF;

OUTY <= CQI ;

END PROCESS P_REG ;

COUT<=CQI(0) AND CQI(1) AND CQI(2) AND CQI(3); --进位输出

END behav;

实验2范例:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CNT10 IS

PORT(CLK : IN STD_LOGIC;

RST : IN STD_LOGIC;

ENA : IN STD_LOGIC;

OUTY :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

COUT :OUT STD_LOGIC ;

M : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)

);

END CNT10;

ARCHITECTURE behav OF CNT10 IS

SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

M<= "0001";

P_REG :PROCESS(CLK,RST,ENA)

BEGIN

IF RST='1' THEN CQI<="0000";

ELSIF CLK'EVENT AND CLK='1'THEN

IF ENA='1' THEN

IF CQI<"1001" THEN CQI<=CQI+1;

ELSE CQI <="0000";

END IF;

END IF;

END IF;

OUTY<=CQI;

END PROCESS P_REG;

COUT<=CQI(0) AND CQI(3);

END behav;

用SW1(D0)控制ENA;PIN_B3

用SW2(D1)控制RST;PIN_A4

Outy是计数输出,对应IO12—IO9(用导线连接L1—L4,高位靠左),计数溢出Cout对应

IO13,(用导线连接L5);

Outy[3]- PIN_T14、Outy[2]- PIN_T15、Outy[1]- PIN_T12、Outy[0]- PIN_T13、Cout- PIN_F13时钟CLK对应IO3:PIN_T11,用导线将ADJ_CLK与IO3相连,调节拨码SW17—SW20使输出1Hz信号。

相关文档
最新文档