EDA 实验报告

  • 格式:doc
  • 大小:272.50 KB
  • 文档页数:35

下载文档原格式

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

4-1 组合电路设计

实验目的:熟悉Quartus2的VHDL文本设计流程全过程,学习简单的组合电路的设计,多层次电路设计、仿真、和硬件测试。

实验任务1:利用软件完成二选一多路选择器的文本编辑和仿真测试等步骤,给出仿真波形,最后在实验系统上进行硬件测试,验证功能。然后,利用元件例化语句描述图3-31,并将此文件放在同一目录下。

实验任务2:利用刚刚完成的实验内容,设计完成一位全加器,仿真该全加器,得到仿真结果,并利用一位二进制全加器为基本元件,用例化语句写出八位并行二进制全加器的顶层文件,讨论该加法器的电路特性。

实验代码及仿真结果:

二选一多路选择器:

library ieee;

use ieee.std_logic_1164.all;

entity mux21a is

port(a,b,s: in std_logic;

y:out std_logic );

end entity mux21a;

architecture one of mux21a is

begin

process(a,b,s)

begin

if s='0' then y<=a; else y<=b;

end if;

end process;

end architecture one;

仿真结果:

分析:

1、s对电路的输出具有决定作用,s为0时输出为a的值,为1时输出为b的值。从仿真

结果可以看出0到10ns内,s为0,此时y的输出为0,是a的值。

2、10到20ns时间内,s为1,输出为b的值,y为1。

图3-31的仿真仿真程序:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity singt is

port(a:in std_logic_vector(3 downto 1);

s:in std_logic_vector(1 downto 0);

outy: out std_logic);

end singt;

architecture bhv of singt is

component mux21a

port(a,b,s: in std_logic;

y:out std_logic );

end component;

signal tmp: std_logic;

begin

u1:mux21a port map(a=>a(2),b=>a(3),s=>s(0),y=>tmp);

u2:mux21a port map(a=>a(1),b=>tmp,s=>s(1),y=>outy);

end architecture bhv;

该部分仿真结果:

分析:

1、3-31中电路的涵义是,s1s0为00时选择outy为a1,s1s0为01时outy为a1,s1s0为10时outy为a2,s1s0为11时outy为a3。

2、从仿真结果来看,s1s0为00时a1为0,所以outy为0,s1s0为01时a1为1,输出也为1,s1s0为10时,a2为1,所以输出也为1 。

一位全加器仿真代码:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity bit1adder is

port(

a,b,ci:in std_logic;

s,co:out std_logic

);

end bit1adder;

architecture func of bit1adder is

signal x,y:std_logic;

begin

x<=a xor b;

y<=x and ci;

s<=x xor ci;

co<=y or (a and b);

end func;

仿真结果:

分析:

1、全加器的作用是将两位加数a,b相加,得到和的低位和进位值,再将进位值与输入的

进位ci相加得到结果的进位值co。本仿真中刚开始,a,b,ci为1,相加应为11(十进制的3),从仿真结果上看,co为1,s为1,可看出结果是正确的。

2、10ns到20ns为0+1+0,结果应该为1,而s为1,co为1,结果仍然正确。

4-2 时序电路的设计

实验目的:熟悉Quartus2的VHDL文本设计流程全过程,学习简单的组合电路的设计,多层次电路设计、仿真、和硬件测试。

实验任务1:设计一个D触发器。

实验代码:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

entity DFF1 is

port(

CLK : in std_logic;

D : in std_logic;

Q : out std_logic

);

end;

architecture beh of DFF1 is

signal Q1:std_logic;

begin

process(CLK,Q1)

begin

if CLK'event and CLK = '1' then

Q1 <=D ;

相关主题