EDA第二次实验报告
S2<=(A2 xor B2) xor U1;
U2:=(A2 and B2) or ((A2 or B2) and A1 and B1) or ((A2 or
B2) and (A1 or B1) and A0 and B0) or ((A2 or B2) and (A1 or B1) and (A0 or B0) and Ci);
S3<=(A3 xor B3) xor U2;
Co<=((A3 xor B3) and (A2 xor B2) and (A1 xor B1) and (A0
xor B0) and Ci) or ((A3 xor B3) and (A2 xor B2) and (A1 xor B1) and A0 and B0 ) or ((A3 xor B3) and (A2 xor B2) and A1 and B1 ) or ((A3 xor B3) and A2 and B2) or (A3 and B3);
END PROCESS;
END beth; (4) 仿真波形
波形解释:
6
EDA第二次实验报告
1、0——10ns:1+1+1=3; 2、10——20ns:6+10=16; 3、20——30ns:1+10+5=16; 4、30——40ns:1+15+15=31.
(注:Ci 是借位位,Co 是进位位,A与B是加数,S为和) 由此可知,该仿真波形说明设计的正确性。
三、 实验收获
本实验为简单逻辑组合电路,全加器设计,使用了最简单“xor”和“and”语句,初步了解了VHDL语言的使用和quarters软件的编程环境,为之后的学习打下很好的基础。另外,对全加器中的快速进位有了深刻的了解,程序较逐步进位复杂难想,但可以使得程序执行起来快速,减少时间的损耗。
四,试验中遇到的问题及解决步骤
1、找不到合适的编写方式实现快速进位在数电课本上找到了全加器的资料,并且找到了合适的公式。
2、建立文件编写完之后无法申报文件。应该把文件名与汇编语言中定义的名字一样。
7
EDA第二次实验报告
组合电路设计(二)
课题:用IF语句和CASE语句设计一个4-16译码器
一·实验目的及内容 1、熟悉4-16译码器的原理
2、熟悉VHDL语言的编程逻辑的构建。 3、掌握VHDL语言的基本结构及使用方法。 二·实验设计思路
1、 使能端为E;当E=1时芯片开始工作.否者输出为
1111111111111111。
2、 当输入端口abcd为:
0000时输出q=1111111111111110 0001时输出q=1111111111111101 0010时输出q=1111111111111011 0011时输出q=1111111111110111 0100时输出q=1111111111101111 0101时输出q=1111111111011111 0110时输出q=1111111110111111 0111时输出q=1111111101111111 1000时输出q=1111111011111111 1001时输出q=1111110111111111
8
EDA第二次实验报告
1010时输出q=1111101111111111 1011时输出q=1111011111111111 1100时输出q=1110111111111111 1101时输出q=110111111111111 1110时输出q=101111111111111 1111时输出q=011111111111111 高阻或无输出时输出q= xxxxxxxxxxxxxxxx 三、流程图
9 Y N …. …. EDA第二次实验报告
四、源程序: library ieee;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY lsh IS
PORT(a,b,c,d,E:IN STD_LOGIC;
q:OUT STD_LOGIC_VECTOR(15 DOWNTO 0)); END lsh ;
architecture behave of lsh is
signal indata:std_logic_vector(3 downto 0); begin
indata<=a&b&c&d; process(indata,E) begin
if(E='1') then case indata is
when \when \when \when \when \
10