第一范文网 - 专业文章范例文档资料分享平台

VHDL数字逻辑电路设计19例

来源:用户分享 时间:2025/7/10 18:52:53 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

13

3. 4位2进制加法计数器 (1)代码

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT4 IS

PORT(clk: IN STD_LOGIC;

Q: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END ENTITY CNT4;

ARCHITECTURE rt1 OF CNT4 IS

SIGNAL Q1:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

PROCESS(clk) BEGIN

IF(clk='1' AND clk'EVENT) THEN Q1<=Q1+1; END IF;

END PROCESS ; Q<=Q1;

END ARCHITECTURE rt1;

(2)波形图

4.表3是带控制端的二进制加法计数器功能表。计数器的最大计数值是W,并且计数到W后输出进位‘1’。 仿真要求:计数初值设定为W-3,CLK周期是W,插入TIME BAR,把时间填入下表。

表3 二进制加法计数器控制端功能表

CLK RST EN LOAD Q 时间

0 0 1 5 上升沿 载入初值

0 0 0 15~60 上升沿 计数

35 输出进位

X 0 1 X 90~110 不变

X 1 X X 0 60

13

14

下面波形图中的W值是136。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNTM IS

PORT(clk, rst, en, load : IN STD_LOGIC;

D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); QOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); Cout : OUT STD_LOGIC); END ENTITY CNTM ;

ARCHITECTURE rt1 OF CNTM IS BEGIN

PROCESS (clk, rst, en ,load)

Variable Q : STD_LOGIC_VECTOR(7 DOWNTO 0);

BEGIN

If rst ='1' then Q:=\

ElsIF (clk='1' AND clk' EVENT ) THEN if en='0' then

if load ='1' then Q:=d ; else if q<136 then q:=q+1; else Q:=\ end if; END IF; END IF; END IF;

If q<136 then cout<='0'; else cout<='1'; END IF; QOUT <= q;

END PROCESS ; END ARCHITECTURE rt1;

14

15

5. 加减计数器74193 (1)代码

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JSQ193 IS

PORT(CLR,LOADN,CPU,CPD: IN STD_LOGIC;

DATA: IN STD_LOGIC_VECTOR(3 DOWNTO 0); QA,QB,Q: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); QCCN,QCBN: OUT STD_LOGIC); END ENTITY JSQ193;

ARCHITECTURE rt1 OF JSQ193 IS --例化T触发器

COMPONENT tFF1 IS

PORT(RSTN,CLRN,clk: IN STD_LOGIC; T: IN STD_LOGIC; Q: OUT STD_LOGIC); END COMPONENT TFF1;

SIGNAL QTA,QTB:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL M,CLK:STD_LOGIC;

BEGIN

CLK<=CPU AND CPD; --加法器

P1:PROCESS(CLR,LOADN,CPU,CPD,DATA,QTA,QTB)

BEGIN

if CLR ='1' then QTA<=\

ELSIF LOADN='0' THEN QTA<=DATA; ELSIF(CPU='1' AND CPU'EVENT) THEN qTA<=qTA+1; END IF;

QCCN<=CPU OR (NOT QTA(3)) OR (NOT QTA(2)) OR (NOT QTA(1)) OR( NOT QTA(0)) OR (NOT CPD); QA<=QTA;

END PROCESS ; --减法器

P2:PROCESS(CLR,LOADN,CPU,CPD,DATA,QTA,QTB)

BEGIN

if CLR ='1' then QTB<=\

15

16

ELSIF LOADN='0' THEN QTB<=DATA; ELSIF(CPD='1' AND CPD'EVENT) THEN qTB<=qTB-1; END IF;

QCBN<=CPD OR QTB(3) OR QTB(2) OR QTB(1) OR QTB(0) OR(NOT CPU); QB<=QTB;

END PROCESS ;

U1:tFF1 PORT map (CPD,CPU,CLK,'0',M);

--选择器

P3:PROCESS(QTB,QTA,M) BEGIN

IF M='1' THEN Q<=QTB; ELSE Q<=QTA;END IF; END PROCESS ;

END ARCHITECTURE rt1; (2)波形图

表4 加减计数器功能 CLR LOADN CPU 0 0 1 0 0

16

CPD X Q 时间(单位NS) 0 1 x 0 1 X 1011 0 加法 20~70 70 0 120 上升沿 1 x X 1 X X 输出进位标志 0 0010 140 210 上升沿 减法 140~210 输出借位标志 0

搜索更多关于: VHDL数字逻辑电路设计19例 的文档
VHDL数字逻辑电路设计19例.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2whj09i1fr3gyk618jsm0fvam2gyzr007eo_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top