日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]數(shù)字邏輯電路分為兩種,分別是組合邏輯與時(shí)序邏輯。(1)組合邏輯:輸出只是當(dāng)前輸入邏輯電平的函數(shù)(有延時(shí)),與電路的原始狀態(tài)無(wú)關(guān)的邏輯電路。也就是說(shuō),當(dāng)輸入信號(hào)中的任何一個(gè)發(fā)生變化時(shí),輸出都有可能會(huì)根據(jù)其變化

數(shù)字邏輯電路分為兩種,分別是組合邏輯與時(shí)序邏輯。

(1)組合邏輯:輸出只是當(dāng)前輸入邏輯電平的函數(shù)(有延時(shí)),與電路的原始狀態(tài)無(wú)關(guān)的邏輯電路。也就是說(shuō),當(dāng)輸入信號(hào)中的任何一個(gè)發(fā)生變化時(shí),輸出都有可能會(huì)根據(jù)其變化而變化,但與電路目前所處的狀態(tài)沒(méi)有任何關(guān)系。其中組合邏輯是由與、或、非門(mén)組成的網(wǎng)絡(luò)。常用的組合電路有:多路器、數(shù)據(jù)通路開(kāi)關(guān)、加法器、乘法器等。

(2)時(shí)序邏輯:輸出不只是當(dāng)前輸入的邏輯電平的函數(shù),還與電路目前所處的狀態(tài)有關(guān)。

時(shí)序邏輯由多個(gè)觸發(fā)器和多個(gè)組合邏輯塊組成的網(wǎng)絡(luò),常用的有:計(jì)數(shù)器、復(fù)雜的數(shù)據(jù)流動(dòng)控制邏輯、運(yùn)算控制邏輯、指令分析和操作控制邏輯等。同步時(shí)序邏輯是設(shè)計(jì)復(fù)雜的數(shù)字邏輯系統(tǒng)的核心。時(shí)序邏輯借助于狀態(tài)寄存器記住它目前所處的狀態(tài)。在不同的狀態(tài)下,即使所有的輸入都相同,其輸出也不一定相同。

assign語(yǔ)句實(shí)現(xiàn)組合邏輯

組合邏輯電路可以用assign語(yǔ)句實(shí)現(xiàn),例如:

例1:assign加法器。

wire a,b,c;

assign c = a + b;               //加法器

 

例1實(shí)現(xiàn)的是一個(gè)簡(jiǎn)單的加法器,assign語(yǔ)句也可以實(shí)現(xiàn)復(fù)雜一些的組合邏輯電路,例如:

 

例2:assign選擇器。

wire a,b,c;

wire ena;

assign c = ena ? a : b;     //數(shù)據(jù)選擇器

例2實(shí)現(xiàn)的是一個(gè)數(shù)據(jù)選擇器。如果組合邏輯比較復(fù)雜,用assign語(yǔ)句書(shū)寫(xiě)就會(huì)比較繁瑣,可讀性較差。例如用assign語(yǔ)句實(shí)現(xiàn)一個(gè)8選1數(shù)據(jù)選擇器,如下所示:

 

例3:assign 8選1選擇器。

wire a0,a1,a2,a3,a4,a5,a6,a7,b;

wire [2:0] addr;

assign b =                      //8選1數(shù)據(jù)選擇器

       (addr == 3’d0) ? a0 :(addr == 3’d1) ? a1 :

       (addr == 3’d2) ? a2 :(addr == 3’d3) ? a3 :

       (addr == 3’d4) ? a4 :(addr == 3’d5) ? a5 :

       (addr == 3’d6) ? a6 : a7;

                  //在該表達(dá)式中,當(dāng)addr不等于d0~d6時(shí),b等于a7

                  //當(dāng)addr等于d6時(shí),b等于a6;當(dāng)addr等于d5時(shí),b等于a5,且優(yōu)先級(jí)

                  //高于addr等于d6時(shí)的情況,依次類推

 

所以復(fù)雜的組合邏輯電路最好用always塊實(shí)現(xiàn)。

從上面的幾個(gè)例子可以看出,使用assign語(yǔ)句描述組合邏輯電路時(shí),格式為:

 

assign 輸出變量 = 輸入變量之間的運(yùn)算結(jié)果;

 

always塊實(shí)現(xiàn)組合邏輯

組合邏輯電路也可以用assign語(yǔ)句實(shí)現(xiàn),例如:

例4:always加法器。

 

wire a,b,c;

always @ (a or b)       //當(dāng)a和b有變化時(shí),觸發(fā)加法器操作

      c = a + b;

 

上面這個(gè)例子實(shí)現(xiàn)了一個(gè)加法器,如果需要實(shí)現(xiàn)一個(gè)數(shù)據(jù)選擇器,可以書(shū)寫(xiě)如下:

 

例5:always選擇器。

wire a,b,c;

wire ena;

always @ (a or b or ena)       //當(dāng)a、b和ena有變化時(shí),進(jìn)行下列操作

     if(ena == 1’b0)      c = b;

     else   c = a;

 

如果想實(shí)現(xiàn)一個(gè)比較復(fù)雜的組合邏輯電路,例如:

 

例6:always8選1選擇器。

wire a0,a1,a2,a3,a4,a5,a6,a7,b;

wire [2:0] addr;

always @ (a0 or a1 or a2 or a3 or a4 or a5 or a6 or a7 or addr) begin

      case(addr)             //使用case語(yǔ)句實(shí)現(xiàn)8選1數(shù)據(jù)選擇器

            3’d0: b = a0;     //只有當(dāng)a0~a7以及addr有變化時(shí),才觸發(fā)case的操作

            3’d1: b = a1;

            3’d2: b = a2;

            3’d3: b = a3;

            3’d4: b = a4;

            3’d5: b = a5;

            3’d6: b = a6;

            3’d7: b = a7;

      endcase

end

 

由于在always塊中可以使用if、case等語(yǔ)句,所以對(duì)于復(fù)雜的組合邏輯,使用always語(yǔ)句進(jìn)行描述顯得層次更加清楚,可讀性更強(qiáng)。

從上面幾個(gè)例子可以看出,使用always語(yǔ)句描述組合邏輯電路時(shí),格式為:

 

always @ (敏感變量1 or敏感變量2 or敏感變量3 or …) begin

      各種語(yǔ)句的組合

end

 

其中的敏感變量包括所有的會(huì)引起輸出變化的輸入變量以及相應(yīng)的控制變量。另外,使用always語(yǔ)句描述組合邏輯電路時(shí),應(yīng)該使用阻塞賦值方式,即“=”,而不是“<=”。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉