实验3 时序电路的设计
实验目的:
熟悉EDA的VHDL文本设计过程,学习简单时序电路的设计、仿真和测试。实验任务:
设计一个带使能输入及同步清0的增1/减1的3位计数器,并仿真。
实验程序:
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?);
Elsif rising_edge(clk) then
If en=?1? then
9
?0?;
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
End; 实验结果: 1、综合电路图
10
2、仿真时序图
实验分析:
11
实验4 8-3优先编码器的VHDL设计
实验目的:
1、通过常见基本组合逻辑电路的设计,熟悉EDA设计流程。 2、熟悉文本输入及仿真步骤。
3、掌握VHDL设计实体的基本结构及文字规则。 4、理解硬件描述语言和具体电路的映射关系。 实验原理:
表 8-3优先编码器真值表
输入 输出 EIN 0N 1N 2N 3N 4N 5N 6N 7N A2N A1N A0N GSN EON 1 X X X X X X X X 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 X X X X X X X 0 0 0 0 0 1 0 X X X X X X 0 1 0 0 1 0 1 0 X X X X X 0 1 1 0 1 0 0 1 0 X X X X 0 1 1 1 0 1 1 0 1 0 X X X 0 1 1 1 1 1 0 0 0 1 0 X X 0 1 1 1 1 1 1 0 1 0 1 0 X 0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1
12
相关推荐: