6时序电路设计
更新时间:2023-10-17 03:38:01 阅读量: 综合文库 文档下载
Beijing Techshine Technology Co. TECHISHINE
实验二十 计数器
一 实验目的
1、 设计一个带使能输入、进位输出及同步清0的增1十进制计数器,波形图见图20-1 2、 设计一个带使能输入及同步清0的增1计数器,波形图见图20-2 3、 设计一个带使能输入及同步清0的增1/减1的8位计数器
4、 设计一个带使能输入及同步清0的并行加载通用(带有类属参数 )增1/减1计数器
二 实验内容
图20-1 计数器1波形图
图20-2 计数器2波形图
在用VHDL语言描述一个计数器时,如果使用了程序包ieee.std_logic_unsigned,则在描述计数器时就可以使用其中的函数“+”(递增计数)和“-”(递减计数)。假定设计对象是增1计数器并且计数器被说明为向量,则当所有位均为‘1’时,计数器的下一状态将自动变成‘0’。举例来说,假定计数器的值到达“111”是将停止,则在增1之前必须测试计数器的值。
如果计数器被说明为整数类型,则必须有上限值测试。否则,在计数顺值等于7,并且要执行增1操作时,模拟器将指出此时有错误发生。
下面的例子是一个3位增1/减1计数器:当输入信号UP等于1 时计数器增1;当输入信号UP等于0时计数器减1。 Library ieee;
Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Entity up_down is Port(clk,rst,en,up: in std_logic; Sum: out std_logic_vector(2 downto 0); Cout: out std_logic); End;
Architecture a of up_down is
Signal count: std_logic_vector(2 downto 0); Begin Process(clk,rst) Begin If rst=’0’ then Count<=(others=>’0’);
49
Beijing Techshine Technology Co. TECHISHINE
Elsif rising_edge(clk) then If en=’1’ then Case up is When ‘1’ => count<=count+1; When others =>count<=count-1; End case; End if; End if; End process; Sum<=count; Cout <=’1’ when en=’1’ and ((up=’1’ and count=7) or (up=’0’ and count=0)) else ‘0’; End;
参考以上实例完成实验目的中所要求的4个计数器的设计。
二、 实验连线
同前,输入时钟信号接时钟电路的相应输出(CLK0~CLK5),复位信号接拨码开关或按键,输出信号接发光二极管。
50
Beijing Techshine Technology Co. TECHISHINE
实验二十一 MOORE机
一 实验目的
1、 如图21-1所示的状态图和状态机框图,设计并实现一个output=state类型的状态机,写出其VHDL源代码(包括entity 和architecture),当信号RST=‘0’时,状态机应回到初始状态S0。要求调试通过。
2、 对于图21-2所示的状态图和状态机框图,输出信号是否存在“毛刺”没有要求,写出其VHDL源代码(包括entity和architecture)并画出结果电路图,要求调试通过。
3、 对于图21-2所示的状态图和状态机框图,写出其VHDL源代码(包括entity 和architecture)并画出结果电路图,要求调试通过。要求输出信号没有“毛刺”。
二 实验内容
图21-1 状态一
图21-2 状态二
下面我们以一个存储控制器状态机的设计过程来介绍Moore机的设计。
51
Beijing Techshine Technology Co. TECHISHINE
设计要求:设计一个存储控制器状态机。能够根据微处理器的读写周期,分别对存储器输出写使能WE和读使能OE信号。
工作过程:存储控制器的输入信号为微处理器的就绪READY及读写read_write信号。当上电复位后,或read有效时,存储控制器开始工作,并在下一个时钟周期判断本次作业任务是读存储器还是写存储器。判断的依据是,当read_write有效时为读操作,否则为写操作。也就是说非读即写。读操作时,OE信号有效,写操作时,WE信号有效。当READY信号有效时,表示读本次作业处理完成,并使控制器恢复到初始状态。
控制器真值表见表21-1,状态图见图21-3。
图21-3 存储器控制器状态图
状态 OE 空闲(IDLE) 判断(DECISION) 写(WRITE) 读(READ) 0 0 0 1 E 0 0 1 0 输出 W
表21-1 存储控制器真值表
程序源代码: LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY moore IS
PORT(clk,ready,read_write: IN Std_Logic;
oe,we : OUT Std_Logic); END moore;
52
Beijing Techshine Technology Co. TECHISHINE
ARCHITECTURE state_machine OF Moore IS TYPE state_type IS (idle,decision,read,write); SIGNAL present_state,next_state: state_type; BEGIN
state_comb: PROCESS(present_state,ready,read_write) BEGIN
CASE present_state IS WHEN idle => oe<='0'; we<='0';
IF(ready='1') THEN
next_state<=decision; ELSE
next_state<=idle; END IF;
WHEN decision => oe<='0'; we<='0';
IF(read_write='1') THEN next_state<=read; ELSE
next_state<=write; END IF; WHEN read => oe<='1'; we<='0';
IF(ready='1') THEN next_state<=idle; ELSE
next_state<=read; END IF; WHEN write => oe<='0'; we<='1';
IF(ready='1') THEN next_state<=idle; ELSE
next_state<=write; END IF; END CASE;
END PROCESS state_comb;
state_clocked:PROCESS(clk)
53
Beijing Techshine Technology Co. TECHISHINE
实验二十三 串入/并出移位寄存器
一 实验目的
根据实验内容中介绍的4位串入/并出移位寄存器的设计方法,设计一个8位串入/并出移位寄存器。
二 实验内容
本实验通过一个4位串入/并出移位寄存器设计过程来介绍如何设计串入/并出移位寄存器。 所谓的串入/并出移位寄存器,即输入的数据是一个接着一个有序地进入,输出时则一起送出。 例程代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL ;
USE IEEE.STD_LOGIC_UNSIGNED.ALL ; ENTITY sipo IS PORT( D_IN :IN STD_LOGIC; CLK :IN STD_LOGIC; D_OUT :OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END sipo;
ARCHITECTURE a OF sipo IS SIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN
P1: PROCESS(CLK) BEGIN IF CLK'EVENT AND CLK = '1' THEN Q(0) <= D_IN; FOR I IN 1 TO 3 LOOP Q(I) <= Q(I-1); END LOOP; END IF;
END PROCESS P1; D_OUT <=Q ; END a;
仿真结果如图23-1所示:
59
Beijing Techshine Technology Co. TECHISHINE
图23-1 4位串入/并出移位寄存器仿真波形图
上图中输入的数据为“1010”、“0111”两组4位数据。因输入的数据是每次一位依序进入,故输入、输出信号之间有4个CLK时间的延迟。为了过滤中间没用的数据,只读取完整的存储数据,实用上可将取样脉冲的周期设定成CLK脉冲的四倍,也就是说,每经过4个CLK脉冲后再读取数据一次,便能每次读取都得到正确的数据。可见上图有效的输出是A 7。
三 实验连线
输入信号D-IN(代表一位的串行数据输入)和CLK(代表抽样时钟信号),CLK时钟信号接适配器板子上的时钟信号,频率建议取在1Hz左右,D-IN接拨码开关或按键;输出信号有D-OUT0~D-OUT3(代表4位并行数据输出),接发光二极管。
60
Beijing Techshine Technology Co. TECHISHINE
实验二十四 并入/串出移位寄存器
一 实验目的
根据实验内容中介绍的4位并入/串出移位寄存器的设计方法,设计一个8位并入/串出移位寄存器。 二 实验内容
本实验通过一个4位并入/串出移位寄存器设计过程来介绍如何设计并入/串出移位寄存器。 所谓的并入/串出移位寄存器,即输入的数据是整组一次进入,输出时则一个接着一个依序地送出。 例程代码: LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY piso IS PORT( DATA_IN :IN STD_LOGIC_VECTOR(3 DOWNTO 0); CLK :IN STD_LOGIC; nLOAD :IN STD_LOGIC; DATA_OUT :OUT STD_LOGIC); END piso;
ARCHITECTURE a OF piso IS SIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN
PROCESS(nLOAD,CLK) BEGIN IF nLOAD = '0' THEN Q <= DATA_IN; ELSIF CLK'EVENT AND CLK = '1' THEN q(1) <= Q(0) ; FOR I IN 1 TO 3 LOOP Q(I) <= Q(I-1); END LOOP; END IF; END PROCESS; PROCESS(nLOAD,CLK) BEGIN IF nLOAD = '0' THEN DATA_OUT <= '0'; ELSIF CLK'EVENT AND CLK = '1' THEN DATA_OUT <= Q(3); END IF;
61
Beijing Techshine Technology Co. TECHISHINE
END PROCESS; END a;
仿真结果如图22-1所示。
图22-1 4位并入/串出移位寄存器仿真波形图
在程序中,增加了一个nLOAD信号,当nLOAD为‘0’时,数据才读入,这个‘0’的作用即为“Start bit”。告诉电路现在准备开始读入数据。
在图中,输入的数据为“0100”、“1110”、“1100”。
三、实验连线
同前,输入时钟信号接时钟电路的相应输出(CLK0~CLK5),输入信号接拨码开关或按键,输出信号接发光二极管。
62
Beijing Techshine Technology Co. TECHISHINE
实验二十五 串入/串出移位寄存器
一 实验目的
根据实验内容中介绍的4位串入/串出移位寄存器的设计方法,设计一个8位串入/串出移位寄存器。
二 实验内容
在这里我们通过一个4位串入/串出移位寄存器设计过程来介绍如何设计串入/串出移位寄存器。
所谓的串入/串出移位寄存器,即输入的数据是一个接着一个依序地进入,输出时一个接着一个依序地送出。
例程代码如下: LIBRARY ieee;
USE ieee.std_logic_1164.ALL; ENTITY siso IS PORT( DATA_IN :IN STD_LOGIC; CLK :IN STD_LOGIC; DATA_OUT :OUT STD_LOGIC); END siso ;
ARCHITECTURE a OF siso IS SIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN
PROCESS(CLK) BEGIN IF CLK'EVENT AND CLK = '1' THEN Q(0) <= DATA_IN; FOR I IN 1 TO 3 LOOP Q(I) <= Q(I-1); END LOOP; END IF; END PROCESS; DATA_OUT <= Q(3); END a;
仿真结果如图25-1:
图25-1 4位串入/串出移位寄存器仿真波形图
63
Beijing Techshine Technology Co. TECHISHINE
因为一开始时寄存器内部存储的数据为“0000”,必须等这4个“0”逐一移出后,新的数据才能进入并存储,帮数据的输入和输出会存有4个位延迟时间的差异。DATA_IN表示输入的数据流,DATA_OUT为输出的数据流,Q显示的为寄存器目前存储的数据内容。
三 实验连线
输入信号有CLK(时钟信号)、DATA-IN(数据输入),CLK用适配器板子上的时钟端,接数字信号源的CLK5,频率调节到1Hz左右,DATA-IN接拨码开关;输出信号DATA-OUT接发光二极管。
64
Beijing Techshine Technology Co. TECHISHINE
实验二十六 并入/并出移位寄存器
一 实验目的
根据实验内容中介绍的4位并入/并出移位寄存器的设计方法,设计一个8位并入/并出移位寄存器。
二 实验内容
本实验通过一个4位并入/并出移位寄存器设计过程来介绍如何设计并入/并出移位寄存器。 所谓的并入/并出移位寄存器,即输入的数据是一起进入,输出时则一起送出。 例程代码: library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity pipo is port ( data_in: in std_logic_vector(3 downto 0); clk : in std_logic; data_out:out std_logic_vector(3 downto 0) ); end pipo;
architecture pipo of pipo is
signal q:std_logic_vector(3 downto 0); begin
process(clk) begin if clk'event and clk='1' then q<=data_in; data_out<=q; end if; end process; end pipo;
仿真结果如图26-1:
图26-1 4位并入/并出移位寄存器仿真波形图
程序中的并入/并出实际上是采用总线或排线的方式。而串行输入/输出则只有一条线相连接,
65
Beijing Techshine Technology Co. TECHISHINE
故需一个一个数据分别处理,串行的方式虽然硬件结构较为简单及经济,但相对的处理速度比较慢,尤其当位数大到某程度时,时间延迟会变得很明显。
三 实验连线
输入信号有clk(时钟信号)、data_in0~data_in3(4位数据输入),其中clk用适配器板子上的时钟端,接数字信号源的CLK0或CLK1等,频率可调节的高一些,data_in0~data_in3接拨码开关;输出信号data_out0~data_out3(4位数据输出)接发光二极管。
66
Beijing Techshine Technology Co. TECHISHINE
实验二十七 多功能寄存器
一 实验目的
设计并实现一个串/并进、串出移位寄存器。 二 实验内容
串/并进、串出移位寄存器在TTL手册中是74166芯片,其功能图如图27-1所示。 其中 :A~H:8位并行数据输入端 CLRN:异步清零端 SER:串行数据输入端 CLK:同步时钟输入端 CLKIH:时钟信号禁示端 STLD:移位/装载控制端 QH:串行数据输出端
通过查询74166的真值表可知: 图27-1 功能图 CLK=0时,输出为0;
CLKIH=1时,不管时钟如何变化,输出不变化。
STLD=1时,移位状态,在时钟上升沿时刻,向右移一位,SER串入的数据移入Q。 STLD=0时,加载状态,8位输入数据输入数据就能装到Q0~Q7寄存器。 波形仿真图如下图27-2和27-3:
图27-2 串行数据输入时的仿真图
67
Beijing Techshine Technology Co. TECHISHINE
图27-3 并行数据输入时的仿真图
三 实验连线
输入信号有CLK(同步时钟信号)、CLK1H(时钟信号禁示端)、CLRN(异步清零)、STLD(信号读取控制端)、SER(串行数据输入端)、A~H(8位并行数据输入端),CLK信号用适配器板子上的时钟端接数字信号源的CLK5,频率可以适当调节的低一些,大概在1Hz左右,CLK1H接低电平,CLRN接高电平,SER和A~H接拨码开关,STLD接拨码开关,观察图27-2串行数据输入时的仿真图和27-3 并行数据输入时的仿真图的波形,拨动拨码开关,观察现象。输出信号QH接发光二极管。
观察串行数据输入时,CLK、CLK1H、CLRN按照以上所述接线,STLD接高电平,拨动SER,观察QH的输出。
观察并行数据输入时,CLK、CLK1H、CLRN接线方式不变,按照需要拨动A~H,确定并行输入数据,将STLD接高电平,然后给一个低电平的脉冲(即忽然向下拨动,马上又拨回高电平),观察QH的输出。
68
Beijing Techshine Technology Co. TECHISHINE
置位法分别完成3~9、3~F 的顺序计数; 用八位数码管显示四个计数状态。
T35_6.gdf 原理图示
说明:
计数时钟频率 CLK< 0.5Hz, 扫描时钟频率 CKDSP> 40Hz;
这是按0,2,5,3,4,6,1变化的七进制计数器;图中包括两个独立的实现方法,一种为异步清零, 一种为同步清零,两种方法同时显示;
t5_6.gdf 用74LS161计数器加译码的方法实现异步清零七进制计数器的设计; 同时用状态机的方法实现同步清零七进制计数器的设计;
89
正在阅读:
6时序电路设计10-17
全自动生化分析仪技师专业考试培训模拟题01-19
五年级第二学期人教版五年级数学下册期末模拟试卷(附答案)03-25
毕业论文致谢词及感言11-13
GS8640V32T-250中文资料07-24
第五章-FET三极管及其放大管考试试题07-22
曲阜师范教育技术学导师研究 - 图文06-29
畜产品市场营销02-17
C语言贪吃蛇实验报告03-05
师大附中德育渗透计划德育渗透计划10-27
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 时序
- 电路设计
- 干部档案审核的主要内容
- 法理学案例分析例题
- 人体解剖生理学期末复习题参考答案
- 设备科完善制度及流程
- 寿庆气氛浓 寿星心情爽
- 软交换与NGN 阶段四作业答案
- 郑州大学现代远程教育入学测试机考高起专《语文》模拟题及参考答案
- 2019-2020年小学六年级奥数题集锦
- 煤矿地质专业考试题库
- 八年级《白杨礼赞》导学案+同步练习+答案
- 车间副主任工作总结
- 2017年台湾省中考数学试卷带答案解析
- 机械原理期末试卷+答案8
- 《演讲与口才》课程实施性教学大纲
- 中意径赛计时记分系统方案(智能感应型) - 图文
- 计算机考试选择题题库
- 最新-登泰山记课堂练习 精品
- 课后古诗词名句积累及练习
- 现在进行时讲解与练习
- 某科技有限公司2010年度工作总结及2011年工作计划书