组合逻辑电路设计案例.docx

上传人:b****2 文档编号:14005587 上传时间:2023-06-19 格式:DOCX 页数:48 大小:1,010.43KB
下载 相关 举报
组合逻辑电路设计案例.docx_第1页
第1页 / 共48页
组合逻辑电路设计案例.docx_第2页
第2页 / 共48页
组合逻辑电路设计案例.docx_第3页
第3页 / 共48页
组合逻辑电路设计案例.docx_第4页
第4页 / 共48页
组合逻辑电路设计案例.docx_第5页
第5页 / 共48页
组合逻辑电路设计案例.docx_第6页
第6页 / 共48页
组合逻辑电路设计案例.docx_第7页
第7页 / 共48页
组合逻辑电路设计案例.docx_第8页
第8页 / 共48页
组合逻辑电路设计案例.docx_第9页
第9页 / 共48页
组合逻辑电路设计案例.docx_第10页
第10页 / 共48页
组合逻辑电路设计案例.docx_第11页
第11页 / 共48页
组合逻辑电路设计案例.docx_第12页
第12页 / 共48页
组合逻辑电路设计案例.docx_第13页
第13页 / 共48页
组合逻辑电路设计案例.docx_第14页
第14页 / 共48页
组合逻辑电路设计案例.docx_第15页
第15页 / 共48页
组合逻辑电路设计案例.docx_第16页
第16页 / 共48页
组合逻辑电路设计案例.docx_第17页
第17页 / 共48页
组合逻辑电路设计案例.docx_第18页
第18页 / 共48页
组合逻辑电路设计案例.docx_第19页
第19页 / 共48页
组合逻辑电路设计案例.docx_第20页
第20页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

组合逻辑电路设计案例.docx

《组合逻辑电路设计案例.docx》由会员分享,可在线阅读,更多相关《组合逻辑电路设计案例.docx(48页珍藏版)》请在冰点文库上搜索。

组合逻辑电路设计案例.docx

组合逻辑电路设计案例

目录1

简单门电路‥‥‥‥‥‥‥‥‥‥‥‥3

三态门及总线缓冲器‥‥‥‥‥‥‥‥‥‥‥‥6

转换器‥‥‥‥‥‥‥‥‥‥‥‥8

并置运算器‥‥‥‥‥‥‥‥‥‥‥‥9奇偶校验器‥‥‥‥‥‥‥‥‥‥‥‥11加法器‥‥‥‥‥‥‥‥‥‥‥‥12选择器‥‥‥‥‥‥‥‥‥‥‥‥18

编译码器‥‥‥‥‥‥‥‥‥‥‥‥

二输入与门

1★程序:

ENTITYand2IS

PORT(a,b:

INBIT;4-1

例:

出处4.1.1

c:

OUTBIT);:

注意代入语句使用时与知识点

ENDENTITYand2;实际电路工作情况保持一致,延ARCHITECTUREand2_behavOFand2IS时是必须要考虑的因素。

BEGIN

c<=aANDbAFTER5ns;ENDARCHITECTUREand2_behav;

2★程序

ENTITYand2IS

1

GENERIC(rise,fall:

TIME);

PORT(a,b:

INBIT;4-44.1.4例出处:

c:

OUTBIT)语句常用于:

GENERIC知识点ENDENTITYand2;不同层次之间点的信息传递,该ARCHITECTUREbehavOFand2IS语句分别对例中使用GENERICSIGNALinternal:

BIT;信号的上升时间和下降时间进BEGIN行了定义。

internal<=aANDb;

WHENinternal='1'ELSE

c<=internalAFTER(rise)

fall);internalAFTER(

ENDARCHITECTUREbehav;

★程序3LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYnand2IS

INSTD_LOGIC;PORT(a,b:

OUTSTD_LOGIC);y:

ENDENTITYnand2;

ARCHITECTUREnand2_2OFnand2IS

BEGIN

t1:

PROCESS(a,b)IS

ARIABLEcomb:

STD_LOGIC_VECTOR(1DOWNTO0);

VBEGIN

comb:

=a&b;

CASEcombIS

7-2例出处:

7.1.1WHEN

方式描述构造RTL:

采用知识点WHEN=>y<='1';

语句实现器件的体,使用CASEWHEN=>y<='1';

逻辑功能。

WHEN=>y<='0';

WHENOTHERS=>y<='X';

ENDCASE;

ENDPROCESSt1;ENDARCHITECTUREnand2_2;

2

三态门电路

数据输出数据输入控制输入

doutdinenZ0X

0011

11

★程序1:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYtri_gateIS

INSTD_LOGIC;PORT(din,en:

OUTSTD_LOGIC);dout:

ENDENTITYtri_gate;

出7.1.47-15

ARCHITECTUREzasOFtri_gateIS知识点:

利用IF语句的多选择分BEGIN

支功能描述三态门,注意输入、tri_gate1:

PROCESS(din,en)IS输出间的控制关系。

BEGIN

IF(en='1')THEN

dout<=din;

ELSE

dout<='Z';

ENDIF;

ENDPROCESS;

ENDARCHITECTUREzas;

★程序2

ARCHITECTUREblkOFtri_gateIS出处:

7.1.4例7-16

BEGIN

知识点:

使用卫式BLOCK结构tri_gate2:

BLOCK(en='1')描述,注意条件的设立。

BEGIN

dout<=GUARDEDdin;

ENDBLOCK;

ENDARCHITECTUREblk;

3

八位单向总线缓冲器

1:

★程序LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYtri_buf8IS

PORT(din:

INSTD_LOGIC_VECTOR(7DOWNTO0);

dout:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

en:

INSTD_LOGIC);

ENDENTITYtri_buf8;

ARCHITECTUREzasOFtri_buf8IS

BEGIN

tri_buff:

PROCESS(en,din)IS

7-157.1.4例出处:

BEGIN

IF知识点:

采用进程结构,使用IF(en='1')THEN

语句描述器件逻辑功能。

dout<=din;

ELSE

dout<=ZZZZZZZZ;

ENDIF

ENDPROCESS;

ENDARCHITECTUREzas;

双向总线缓冲器

4

★程序1:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYtri_bigateIS

PORT(a,b:

INOUTSTD_LOGIC_VECTOR(7DOWNTO0);

en:

INSTD_LOGIC;

dr:

INSTD_LOGIC);

ENDENTITYtri_bigate;

ARCHITECTURErtlOFtri_bigate

SIGNALaout,bout:

STD_LOGIC_VECTOR(7DOWNTO0);

BEGIN

PROCESS(a,dr,en)IS

BEGIN

IF((en='0')AND(dr='1'))THEN

bout<=a;

7-237.1.4例出处:

ELSE

使用两个进程语句分别知识点bout<=ZZZZZZZZ;

对两个方向上的数据传输进行ENDIF;

描述。

b<=bout;

ENDPROCESS;PROCESS(b,dr,en)IS

BEGIN

IF((en='0')AND(dr='0'))THEN

aout<=b;

ELSE

aout<=ZZZZZZZZ;

ENDIF;

a<=aout;

ENDPROCESS;

ENDARCHITECTURErtl;

5

位矢量/整数转换器

x_flagz(i)

q

★程序1:

PROCEDUREvector_to_int

(z:

INSTD_LOGIC_VECTOR;

x_f1ag:

OUTBOOLEAN;

2-7例出处:

2.2.3

q:

INOUTINTEGER)IS

构造体采用子程序语句结知识点:

BEGIN,PROCEDURE)构的过程语句(q:

=0;

掌握语句的书写格式即使用方法。

x_f1ag:

=FALSE;

FORiINz'RANGELOOP

q:

=q*2;

IF(z(i)=1)THEN

q:

=q+1;

ELSIF(z(i)/=0)THEN

x_f1ag:

=TRUE;

ENDIF

ENDLOOP;

ENDPROCEDUREvector_to_int;

/整数转换器标准逻辑矢量

1:

★程序LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYadd5ISPORT(num:

INSTD_LOGIC_VECTOR(2DOWNTO0);

…);

ENDENTITYadd5;3-13.2.4例:

出处

ARCHITECTURErtlOFadd5IS:

程序中使用了转换函知识点SIGNALin_num:

INTEGERRANGE0TO5;语言中常用的转掌握数,VHDL

…换函数的使用方法和所在的包集合。

6

BEGIN

in_num<=CONV_INTEGER(num);

ENDARCHITECTURErtl;

7

并置运算器

★程序1:

3.3.4出处:

…:

注意位并置符的使用方知识点tmp_b<=bAND(en&en)&;en&en法和使用时的注意事项。

;&y<=atmp_b…

8

八位奇偶校验电路

a(0)a

(1)a

(2)a(3)

ya(4)

a(5)a(6)a(7)

★程序1LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYparity_checkIS

PORT(a:

INSTD_LOGIC_VECTOR(7DOWNTO0);

y:

OUTSTD_LOGIC);

ENDENTITYparity_check;

ARCHITECTURErtlOFparity_checkIS

BEGIN

PROCESS(a)IS

ARIABLEtmp:

STD_LOGIC;

V

5-135.1.7例出处:

BEGIN

语句的书写LOOP注意知识点:

tmp:

='0';

格式及使用。

FORiIN0TO7LOOP

tmp:

=tmpXORa(i);

ENDLOOP;

y<=tmp;

ENDPROCESS;

ENDARCHITECTURErtl;

★程序2

LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;

ENTITYparity_checkIS

PORT(a:

INSTD_LOGIC_VECTOR(7DOWNTO0);

y:

OUTSTD_LOGIC);

parity_check;

ENDENTITY

ARCHITECTUREbehavOFparity_checkIS

BEGIN

PROCESS(a)IS

ARIABLEtmp:

STD_LOGIC;

V9

BEGIN

tmp:

='0';

i:

=0;

5-14

例:

5.1.7出处WHILE(i<8)LOOP条件的WHILE知识点:

使用带tmp:

=tmpXORa(i);语句描述八位奇偶校验电LOOPi:

=i+1;路的逻辑功能。

ENDLOOP;

y<=tmp;

ENDPROCESS;

ENDARCHITECTUREbehav;

10

加法器

1:

★程序LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYfull_adderIS

INSTD_LOGIC;PORT(a,b,cin:

OUTSTD_LOGIC);s,co:

ENDENTITYfull_adder;

ARCHITECTUREfull1OFfull_adderIS出处:

7.1.3例7-15

COMPONENThalf_adderIS知识点:

采用COMPONENT语INSTD_LOGIC;

PORT(a,b句PORTMA语句调用已定OUTSTD_LOGIC);

s,co:

义原件半加half_adde描述全ENDCOMPONENT;

加器

SIGNALu0_co,u0_s,u1_co:

STD_LOGIC;

BEGIN

u0:

half_adderPORTMAP(a,b,u0_s,u0_co);

u1:

half_adderPORTMAP(u0_s,cin,s,u1_co);

co<=u0_coORu1_co;

ENDARCHITECTUREfull1;

半加器LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYhalf_adderIS

INSTD_LOGIC;PORT(a,b:

OUTSTD_LOGIC);s,co:

ENDENTITYhalf_adder;

ARCHITECTUREhalf1OFhalf_adderIS

SIGNALc,d:

STD_LOGIC;

BEGIN

c<=aORb;

d<=aNANDb;

co<=NOTd;

s<=cANDd;

ENDARCHITECTUREhalf1;

11

二选一选择器

★程序1

ENTITYmuxIS

1.2出处:

GENERIC(m:

TIME:

=1ns);

理解硬件描述语言能知识点INBIT;PORT(d0,d1比电原理图更有效的表示硬件;sel:

INBIT电路的特性。

OUTBIT)q:

ENDENTITYmux;

ARCHITECTUREconnectOFmuxIS

BEGIN

PROCESS(d0,d1,sel)IS

2.1

出处ARIBLEtemp1,temp2,temp3:

BIT;

VVHDL知识点:

作为一个完整的BEGIN

程序出现,掌握程序框架的结temp1:

=d0ANDsel;

构;实体与构造体的书写格式;temp2:

=d1AND(NOTsel);

各项参数的含义。

temp3:

=temp1ORtemp2;

q<=temp3AFTERm;ENDPROCESS

ENDARCHITECTUREconnect;

(与程序1的描述方式一致,但对原件逻辑功能的描述更简单)2★程序

ENTITYmuxISINBIT;PORT(d0,d1:

sel:

INBIT;

2-3例出处:

2.1.2q:

OUTBIT);

构造体内部语句采用并知识点

;ENDENTITYmux与行处理方式,即介于BEGIN

ARCHITECTUREdataflowOFmuxIS之间的语句将会被同时执END

BEGIN

行。

12

q<=(d0ANDsel)OR(NOTselANDd1);

ENDARCHITECTUREdataflow;

★程序3:

ENTITYmuxIS

PORT(d0,d1,sel:

INBIT;

q:

OUTBIT);

ENDENTITYmux;

ARCHITECTUREconnectOFmuxIS

SIGNALtmp1,tmp2,tmp3:

BIT;

BEGIN

出处:

2.2.1例2-4

cale:

BLOCK

知识点:

构造体采用BLOCK结BEGIN

构,掌握块语句结构的书写格式tmp1<=d0ANDsel;

及使用方法。

tmp2<=d1AND(NOTsel);

tmp3<=tmp1ORtmp2;

q<=tmp3;

ENDBLOCKcale;

ENDARCHITECTUREconnect;

4:

★程序ENTITYmuxIS

sel:

INBIT;d1,PORT(d0,

q:

OUTBIT);

ENDENTITYmux;

ARCHITECTUREconnectOFmuxIS

BEGIN

sel)ISd1,cale:

PROCESS(d0,出处:

2.2.2例2-6

tmp3:

BIT;tmp2,VARIABLEtmp1,知识点:

构造体采用进程语句结BEGIN

构,掌握进程(PROCESS)语句tmp1:

=d0ANDsel;

结构的书写格式及使用方法。

tmp2:

=d1AND(NOTsel);

tmp3:

=tmp1ORtmp2;

q<=tmp3;

ENDPROCESScale;

ENDARCHITECTUREconnect;

★程序:

5ENTITYmux2IS

sel:

INBIT;d1,PORT(d0,

q:

OUTBIT);

ENDENTITYmux2;

ARCHITECTUREstructOFmux2IS

COMPONENTand2IS

13

INBIT;b:

PORT(a,c:

OUTBIT);

ENDCOMPONENT;

COMPONENTor2IS

PORT(a,b:

INBIT;

c:

OUTBIT);

ENDCOMPONENT;出处:

4.3.1例4-16

COMPONENTinvIS知识点:

二选一电路采用结构化PORT(a:

INBIT;的方式描述构造体,使用了c:

OUTBIT);COMPONENT语句和PORTENDCOMPONENT;MAP语句,属于最底层的描述方SIGNALaa,ab,nsel:

BIT;式,与实际电路最贴近。

BEGIN

PORTMAP(sel,nsel);

u1:

inv

u2:

and2PORTMAP(nsel,d1,ab);

u3:

and2PORTMAP(d0,sel,aa);

PORTMAP(aa,ab,q);u4:

or2

ENDARCHITECTUREstruct;

★程序6:

ARCHITECTURErtlOFmux2ISBEGINPROCESS(a,b,sel)IS

BEGIN

出5.1.55-7

IF(sel='1')THEN知识点:

利用IF语句的二选择控c<=a;制功能对二选一电路的逻辑控ELSE制进行描述。

c<=b;

ENDIF;

ENDPROCESS;ENDARCHITECTURErtl;

14

四选一选择器

★程序1LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYmux4IS

PORT(i0,i1,i2,i3,a,b:

INSTD_LOGIC;

q:

OUTSTD_LOGIC);

ENDENTITYmux4;

ARCHITECTUREbehavOFmux4IS

SIGNALsel:

INTEGER;

BEGIN

WITHselSELECT

q<=i0AFTER10nsWHEN0,

5-18

例:

5.2.4出处i1AFTER10nsWHEN1,:

注意选择信号代入语句知识点i2AFTER10nsWHEN2,

的使用。

条件并行执行,不具有i3AFTER10nsWHEN3,

优先级。

'X'AFTER10nsWHENOTHERS;

sel<=0WHENa='0'ANDb='0'ELSE

4-2

4.1.1:

例出处1WHENa='1'ANDb='0'ELSE

注意条件代入语句的使知识点2WHENa='0'ANDb='1'ELSE

用。

3WHENa='1'ANDb='1'ELSE

4;

ENDARCHITECTUREbehav;

2★程序:

15

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNS

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2