EDA技术与VHDL实验

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

EDA技术与VHDL实验

实验4-1. 组合电路的设计

实验目的:熟悉Quartus Ⅱ的VHDL文本设计流程全过程,学习简单组合

电路的设计、多层次电路设计、仿真和硬件测试。

实验任务1

利用Quartus完成2选1多路选择器,并进行编译、仿真、管脚下载。实验代码

ENTITY mux21a IS

PORT(a,b,s:IN BIT;

y:OUT BIT);

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;

仿真波形

从波形看出,仿真结果正确,当s=0时,y=a,反之等于b

管脚下载

管脚测试:s=0------{a=0则y=0},{a=1则y=1}

s=1------{b=0则y=0},{b=1则y=1}

实验任务2

将此多路选择器看成是一个元件mux21a,利用元件例化

语句描述图3-18,并将此文件放在同一目录中。

以下是部分参考程序:

...

COMPONENT MUX21A

PORT ( a,b,s : IN STD_LOGIC;

y : OUT STD_LOGIC);

END COMPONENT ;...

u1 : MUX21A PORT MAP(a=>a2,b=>a3,s=>s0,y=>tmp);

u2 : MUX21A PORT MAP(a=>a1,b=>tmp,s=>s1,y=>outy);

END ARCHITECTURE BHV ;

按照本章给出的步骤对上例分别进行编译、综合、仿真。并对其仿真波形作出分析说明。

实验代码

entity muxk is

port(a1,a2,a3,s0,s1:in bit;

outy:out bit);

end muxk;

architecture one of muxk is

component mux21a

port(a,b,s:in bit;

y:out bit);

end component;

signal tmp :bit;

begin

u1:mux21a port map(a=>a2,b=>a3,s=>s0,y=>tmp);

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

end architecture one;

仿真波形

从仿真波形可以看出s0.s1分别为00,01,10,11时,y分别为a1,a2,a1,a3. 管脚下载

管脚测试:s=00-----y=a1;s=01-----y=b;

s=10-----y=a1;s=11------y=a3;

实验习题:

以1位二进制全加器为基本元件,用例化语句写出8位并行二进制全加器的顶层文件,并讨论此加法器的电路特性。

实验代码

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY f_adder_8b IS

PORT( a,b:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

ci:in STD_LOGIC;

co:OUT STD_LOGIC;

s:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

END ENTITY f_adder_8b;

ARCHITECTURE one OF f_adder_8b IS

COMPONENT f_adder IS

PORT(ain,bin,cin:IN STD_LOGIC;

cout,sum:OUT STD_LOGIC);

END COMPONENT f_adder;

SIGNAL d,e,f,g,h,i,j:STD_LOGIC;

BEGIN

u1:f_adder PORT

MAP(ain=>a(0),bin=>b(0),cin=>ci,cout=>d,sum=>s(0));

u2:f_adder PORT

MAP(ain=>a(1),bin=>b(1),cin=>d,cout=>e,sum=>s(1));

u3:f_adder PORT

MAP(ain=>a(2),bin=>b(2),cin=>e,cout=>f,sum=>s(2));

u4:f_adder PORT

MAP(ain=>a(3),bin=>b(3),cin=>f,cout=>g,sum=>s(3));

u5:f_adder PORT

MAP(ain=>a(4),bin=>b(4),cin=>g,cout=>h,sum=>s(4));

u6:f_adder PORT

MAP(ain=>a(5),bin=>b(5),cin=>h,cout=>i,sum=>s(5));

u7:f_adder PORT MAP(ain=>a(6),bin=>b(6),cin=>i,cout=>j,sum=>s(6));

u8:f_adder PORT

相关文档
最新文档