数字电子系统设计实践

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

第 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) ); 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 页
第八章 数字电子系统设计实践 硬件乘法器的设计
第 3 页
第八章 数字电子系统设计实践
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY sreg8b IS --8位右移寄存器 PORT ( clk : IN STD_LOGIC; LOAD : IN STD_LOGIC; din : IN STD_LOGIC_VECTOR(7 DOWNTO 0); qb : OUT STD_LOGIC ); END sreg8b; ARCHITECTURE behave OF sreg8b IS SIGNAL reg8 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN 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; qb <= reg8(0); --输出最低位 END behave; 第 4 页
右移寄存器 模块设计
第八章 数字电子系统设计实践
8位加法器模块设计
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY adder8 IS 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;
N
W 3 =1? Y S3 10 Y1=1 C2=1 甲道停车 乙道禁止 R2=1
NBiblioteka Baidu
W 2 =1? Y
第 10 页
第八章 数字电子系统设计实践
交通管理器的设计
第 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 TYPE state_space IS (s0,s1,s2,s3); SIGNAL state:state_space; BEGIN 第 12 页
第八章 数字电子系统设计实践
第八章 数字电子系统设计实践 波形仿真
第 8 页
第八章 数字电子系统设计实践
8.2 十字路口交通管理器设计
16位锁存器模块设计
R1 甲道 Y1 G1 G2 Y2 R2 乙道
交通管理器 (控制器) C3 W3 甲道通行t3 定时器(Ⅲ) C1 W1 C2
时钟CLK
W2
乙道通行t1 定时器(Ⅰ)
第 6 页
选通与门模块设计
16位锁存器模块设计 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY reg16b IS PORT ( clk,clr : IN STD_LOGIC; d : IN STD_LOGIC_VECTOR(8 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 IF clr = '1' THEN R16S <= (OTHERS =>'0') ; -- 清零信号 ELSIF CLK'EVENT AND CLK = '1' THEN R16S(6 DOWNTO 0) <= R16S(7 DOWNTO 1); -- 右移低8位 R16S(15 DOWNTO 7) <= D; -- 将输入锁到高8位 END IF; END PROCESS; q <= R16S; END behave; 第 7 页
公共停车t2 定时器(Ⅱ)
第 9 页
第八章 数字电子系统设计实践
交通管理器的设计思路
Q2Q1 S0 00 甲道禁止 乙道通行 R1=1 C1=1 G2=1 N W 1 =1? Y S1 01 甲道禁止 乙道停车 N R1=1 C2=1 Y2=1
W 2 =1? Y S2 11 G1=1 C3=1 甲道通行 乙道禁止 R2=1
第八章 数字电子系统设计实践
第八章
第 1 页
数字电子系统设计实践
第八章 数字电子系统设计实践
8.1 移位相加8位硬件乘法器电路设计 硬件乘法器的功能 --实现两个8位二进制数的乘法运算 硬件乘法器的设计思路 硬件乘法器的乘法运算可以通过逐项移位相加 原理来实现,从被乘数的最低位开始,若为1, 则乘数左移后与上一次的和相加;若为0,左 移后以全零相加,直至被乘数的最高位。
相关文档
最新文档