EDA课后问题详解适用于朱正伟《EDA技术及应用》.docx

上传人:b****3 文档编号:2173721 上传时间:2022-10-27 格式:DOCX 页数:37 大小:64.75KB
下载 相关 举报
EDA课后问题详解适用于朱正伟《EDA技术及应用》.docx_第1页
第1页 / 共37页
EDA课后问题详解适用于朱正伟《EDA技术及应用》.docx_第2页
第2页 / 共37页
EDA课后问题详解适用于朱正伟《EDA技术及应用》.docx_第3页
第3页 / 共37页
EDA课后问题详解适用于朱正伟《EDA技术及应用》.docx_第4页
第4页 / 共37页
EDA课后问题详解适用于朱正伟《EDA技术及应用》.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

EDA课后问题详解适用于朱正伟《EDA技术及应用》.docx

《EDA课后问题详解适用于朱正伟《EDA技术及应用》.docx》由会员分享,可在线阅读,更多相关《EDA课后问题详解适用于朱正伟《EDA技术及应用》.docx(37页珍藏版)》请在冰豆网上搜索。

EDA课后问题详解适用于朱正伟《EDA技术及应用》.docx

EDA课后问题详解适用于朱正伟《EDA技术及应用》

1.1、设计集成计数器74161,设计要求如下:

4-BitBinaryUpCounterwithSynchronousLoadandAsynchronousClearNote

Inputs:

CLKLDNCLRNDCBA

Outputs:

QDQCQBQARCO

*RCO=QD&QC&QB&QA

Libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitycnt4is

port(

clk,LDN,CLRN:

instd_logic;

d,c,b,a:

instd_logic;

carry:

outstd_logic;

qd,qc,qb,qa:

outstd_logic

);

end;

architectureaofcnt4is

signaldata_in:

std_logic_vector(3downto0);

begin

data_in<=d&c&b&a;

process(data_in,clk,ldn,clrn)

variablecnt:

std_logic_vector(3downto0);

begin

ifclrn='0'then

cnt:

=(others=>'0');

elsifclk'eventandclk='1'then

ifldn='0'then

cnt:

=data_in;

else

cnt:

=cnt+1;

endif;

endif;

casecntis

when"1111"=>carry<='1';

whenothers=>carry<='0';

endcase;

qa<=cnt(0);

qb<=cnt

(1);

qc<=cnt

(2);

qd<=cnt(3);

endprocess;

enda;

1.2、设计一个通用双向数据缓冲器,要求缓冲器的输入和输出端口的位数可以由参数决定。

设计要求:

nbit数据输入端口a,b。

工作使能端口en=0时双向总线缓冲器选通,

Dir=1,则a=b;反之b=a。

Libraryieee;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYbidirIS

generic(n:

integer:

=8);

PORT(a,b:

INOUTSTD_LOGIC_VECTOR(n-1DOWNTO0);

en,dir:

INSTD_LOGIC);

END;

ARCHITECTUREaOFbidirIS

BEGIN

PROCESS(en,dir)

BEGIN

ifen='0'then

a<=(OTHERS=>'Z');

b<=(OTHERS=>'Z');

else

ifdir='1'then

b<=a;

else

a<=b;

endif;

endif;

ENDPROCESS;

ENDa;

2.1、用VHDL语言编程实现十进制计数器,要求该计数器具有异步复位、同步预置功能。

libraryieee;

useieee.std_logic_1164.all;

entitycnt_10_2is

port(

clk,clr:

instd_logic;

count:

outstd_logic

);

end;

architectureaofcnt_10_2is

signalcnt_10:

integerrange0to10;

begin

process(clk,clr)

begin

ifclr='1'then

cnt_10<=0;

elsifclk'eventandclk='1'then

cnt_10<=cnt_10+1;

ifcnt_10=9then

cnt_10<=0;

count<='1';

else

count<='0';

endif;

endif;

endprocess;

enda;

2.2、设计实现一位全减器。

行为描述:

f_sub4

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityf_sub4is

port(

a,b,cin:

INstd_logic;

diff,Cout:

OUTstd_logic

);

end;

architectureaoff_sub4is

begin

diff<=axorbxorcin;

cout<=(notaandb)or(notaandcin)or(bandcin);

enda;

数据流描述f_sub1

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityf_sub1is

port(

a,b:

INstd_logic;

cin:

INstd_logic;

diff,Cout:

OUTstd_logic

);

end;

architectureaoff_sub1is

signals:

std_logic_vector(2downto0);

begin

s<=Cin&a&b;

process(a,b,cin)

begin

casesis

when"000"=>diff<='0';cout<='0';

when"001"=>diff<='1';cout<='1';

when"010"=>diff<='1';cout<='0';

when"011"=>diff<='0';cout<='0';

when"100"=>diff<='1';cout<='1';

when"101"=>diff<='0';cout<='1';

when"110"=>diff<='0';cout<='0';

when"111"=>diff<='1';cout<='1';

whenothers=>diff<='X';cout<='X';

endcase;

endprocess;

enda;

数据流描述f_sub2

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityf_sub2is

port(

a,b,cin:

INstd_logic;

diff,Cout:

OUTstd_logic

);

end;

architectureaoff_sub2is

signals:

std_logic_vector(2downto0);

signalc:

std_logic_vector(1downto0);

begin

s<=Cin&a&b;

diff<=c

(1);

cout<=c(0);

c<="00"whens="000"else

"11"whens="001"else

"10"whens="010"else

"00"whens="011"else

"11"whens="100"else

"01"whens="101"else

"00"whens="110"else

"11";

enda;

数据流描述f_sub3

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityf_sub3is

port(

a,b,cin:

INstd_logic;

diff,Cout:

OUTstd_logic

);

end;

architectureaoff_sub3is

signals:

std_logic_vector(2downto0);

signalc:

std_logic_vector(1downto0);

begin

s<=Cin&a&b;

diff<=c

(1);

cout<=c(0);

withsselect

c<="00"when"000",

"11"when"001",

"10"when"010",

"00"when"011",

"11"when"100",

"01"when"101",

"00"when"110",

"11"whenothers;

enda;

3.1、阅读教材P181页,例[5-55]并回答下列问题:

(1)、该程序的功能是什么?

(2)、请写出该程序所有端口的功能描述。

3.2、试描述一个十进制——BCD码编码器,输出使能为低电平有效。

libraryieee;

useieee.std_logic_1164.all;

entitybin_bcdis

port(

bin:

inintegerrange0to20;

--ena:

instd_logic;

BCD_out:

outstd_logic_vector(7downto0)

);

end;

architectureaofbin_bcdis

begin

Binary_BCD:

Block

BEGIN

BCD_out<="00000000"WHENBIN=0ELSE

"00000001"WHENBIN=1ELSE

"00000010"WHENBIN=2ELSE

"00000011"WHENBIN=3ELSE

"00000100"WHENBIN=4ELSE

"00000101"WHENBIN=5ELSE

"00000110"WHENBIN=6ELSE

"00000111"WHENBIN=7ELSE

"00001000"WHENBIN=8ELSE

"00001001"WHENBIN=9ELSE

"00010000"WHENBIN=10ELSE

"00010001"WHENBIN=11ELSE

"00010010"WHENBIN=12ELSE

"00010011"WHENBIN=13ELSE

"00010100"WHENBIN=14ELSE

"00010101"WHENBIN=15ELSE

"00010110"WHENBIN=16ELSE

"00010111"WHENBIN=17ELSE

"00011000"WHENBIN=18ELSE

"00011001

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1