当前位置:文档之家› 第八章数字电子系统设计实践

第八章数字电子系统设计实践

第5页
第八章 数字电子系统设计实践
选通与门模块设计
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY andarith IS
PORT ( abin : IN STD_LOGIC; din : IN STD_LOGIC_VECTOR(7 DOWNTO 0); dout : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );
q : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) );
END reg16b;
ARCHITECTURE behave OF reg16b IS
SIGNAL R16S : STD_LOGIC_VECTOR(15 DOWNTO 0);
BEGIN
PROCESS(clk, clr)
BEGIN
TYPE state_space IS (s0,s1,s2,s3); SIGNAL state:state_space; BEGIN
第 12 页
第八章 数字电子系统设计实践 PROCESS(clk) BEGIN
IF reset='1' THEN state<=s0; ELSIF(clk'EVENT AND clk='1')THEN CASE state IS WHEN s0=>IF w1='1' THEN--条件信号赋值语句
第 16 页
第八章 数字电子系统设计实践
8.3 可编程定时/计数器设计 可编程定时/计数器的功能
硬件定时就是利用可编程定时/计数器,在简 单软件控制下产生准确的延时时间。其基本 原理是通过软件确定定时/计数器的工作方式、 设置计数初值并启动计数器工作,当计数到 给定值时,便自动产生定时信号。
第 17 页
第八章 数字电子系统设计实践
第八章 数字电子系统设计实践
第1页
第八章 数字电子系统设计实践
8.1 移位相加8位硬件乘法器电路设计
硬件乘法器的功能 --实现两个8位二进制数的乘法运算 硬件乘法器的设计思路 硬件乘法器的乘法运算可以通过逐项移位相加
原理来实现,从被乘数的最低位开始,若为1, 则乘数左移后与上一次的和相加;若为0,左 移后以全零相加,直至被乘数的最高位。
第 20 页
第八章 数字电子系统设计实践
内部结构 所设计定时/计数器的内部结构图如图所示
第 21 页
第八章 数字电子系统设
第八章 数字电子系统设计实践
可编程定时/计数器仿真波形
第 23 页
第八章 数字电子系统设计实践
8.4 智能函数发生器设计
函数发生器总体框图
PROCESS (clk, load)
BEGIN
IF load = '1' THEN reg8 <= din; --装载新数据
ELSIF CLK'EVENT AND CLK = '1' THEN
reg8(6 DOWNTO 0) <= reg8(7 DOWNTO 1); --数据右移
END IF;
END PROCESS;
IF enable='1' AND cnt<30 THEN cnt:=cnt+1;
第 15 页
ELSE cnt:=0; END IF;
END IF; IF cnt=30 THEN c<='1'; ELSE c<='0'; END IF; END PROCESS; END behave;
第八章 数字电子系统设计实践 波形仿真
时钟CLK
C3
W2
W3 C1 W1
C2
甲道通行t3 定时器(Ⅲ)
乙道通行t1 定时器(Ⅰ)
公共停车t2 定时器(Ⅱ)
第9页
交通管理器的设计思路
第 10 页
第八章 数字电子系统设计实践
Q2Q1
S0
00
甲道禁止 乙道通行 R1=1
C1=1
G2=1
N
W1=1?
S1
Y
01 R1=1
甲道禁止 乙道停车 C2=1
qb <= reg8(0);
--输出最低位
END behave; 第4页
第八章 数字电子系统设计实践
8位加法器模块设计
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY adder8 IS
Y2=1
N
W2=1?
S2
Y
11 G1=1
甲道通行 乙道禁止 C3=1
R2=1
N
W3=1?
S3
Y
10 Y1=1
甲道停车 乙道禁止 C2=1
R2=1
N
W2=1?
Y
交通管理器的设计
第八章 数字电子系统设计实践
第 11 页
第八章 数字电子系统设计实践
控制器模块设计
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY traffic_control IS PORT( clk:IN STD_LOGIC; c1,c2,c3:OUT STD_LOGIC;--各定时计数器的使能信号 w1,w2,w3:IN STD_LOGIC;--各定时计数器的工作信号 r1,r2:OUT STD_LOGIC;--两个方向的红灯信号 y1,y2:OUT STD_LOGIC; --两个方向的黄灯信号 g1,g2:OUT STD_LOGIC;--两个方向的绿灯信号 reset:IN STD_LOGIC);--复位信号 END traffic_control; ARCHITECTURE behave OF traffic_control IS
第八章 数字电子系统设计实践
可编程定时/计数器设计思路
可编程定时/计数器工作过程
第 18 页
第八章 数字电子系统设计实践
模型结构
(1) 控制字寄存器 包含1个时钟输入,1个清零信号输入,1个写入信号 输入,1个3位的控制字输入,1个2位的选通信号输出, 1个计数器1载入控制输出,1个计数器2载入控制输出。
第 24 页
第 25 页
第八章 数字电子系统设计实践 递增斜波 递减斜波
三角波
第 26 页
第八章 数字电子系统设计实践 阶梯波 正弦波 方波
第八章 数字电子系统设计实践
8.5 数据采集系统设计
模拟输入 A/D转换
控制核心
D/A转换
模拟输出
显示
数据采集系统示意图
第 27 页
第八章 数字电子系统设计实践
第 13 页
第八章 数字电子系统设计实践
c1<='1' WHEN state=s0 ELSE'0'; c2<='1' WHEN state=s1 OR state=s3 ELSE'0'; c3<='1' WHEN state=s2 ELSE'0'; r1<='1' WHEN state=s1 OR state=s0 ELSE'0'; y1<='1' WHEN state=s3 ELSE'0'; g1<='1' WHEN state=s2 ELSE'0'; r2<='1' WHEN state=s2 OR state=s3 ELSE'0'; y2<='1' WHEN state=s1 ELSE'0'; g2<='1' WHEN state=s0 ELSE'0'; END behave;
PORT(b, a : IN STD_LOGIC_VECTOR(7 DOWNTO 0); s : OUT STD_LOGIC_VECTOR(8 DOWNTO 0) );
END adder8; ARCHITECTURE behav OF adder8 IS BEGIN
s <= '0'&a + b ; END behave;
END andarith; ARCHITECTURE behave OF andarith IS BEGIN
PROCESS(abin, din) BEGIN
FOR I IN 0 TO 7 LOOP -- 循环,完成8位与1位运算 DOUT(I) <= DIN(I) AND ABIN;
END LOOP; END PROCESS; END behave;
(2) 定时/计数器1 包含1个时钟输入,1个载入控制输入,1个门控制 输入,1个2位选通方式输入,1个8位数据输入,1 个8位数据输出,1个波形输出。 (3) 定时/计数器2
同定时/计数器1。
第 19 页
第八章 数字电子系统设计实践
控制字定义 SC2、M1、M0 定义控制字格式为: 对应功能: SC2=0,计数器1; M1 M0=01,频率发生器方式 SC2=1,计数器2; M1 M0=10,计数结束中断方式 计数器的模式输入为2 位,可自定义最多四种模式;数 据输入8 位,计数范围为0~256;每个计数器各有一个 门控信号和对应门控信号的波形输出,在门控信号作用 下,计数/定时延时。
第2页
第八章 数字电子系统设计实践 硬件乘法器的设计
第3页
第八章 数字电子系统设计实践
右移寄存器 模块设计
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
相关主题