国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Verilog實(shí)現(xiàn)四位加/減法器(邏輯表達(dá)式)

這篇具有很好參考價(jià)值的文章主要介紹了Verilog實(shí)現(xiàn)四位加/減法器(邏輯表達(dá)式)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

??起因是老師要我們以邏輯表達(dá)式的形式交作業(yè),強(qiáng)調(diào)是邏輯表達(dá)式,在網(wǎng)上找了許久,沒(méi)有找到,便從一些文章中找到了靈感,特分享


說(shuō)明: 此代碼為四位加/減法器的Verilog代碼實(shí)現(xiàn)(用的是邏輯表達(dá)式)


  • 第一種表達(dá):

module plus (
    input [3:0] P,
    input [3:0] G,
    input op,
    output [3:0] C
);
    /*
參數(shù)說(shuō)明
op 是運(yùn)算符號(hào),op = 0時(shí)是加法, op = 1時(shí)是減法
P 和 G 是兩個(gè)操作數(shù),C 是結(jié)果
即 P op G = C
*/

    // 定義一個(gè)變量輔助計(jì)算
    wire [3:0] ci;
    // 用ci記錄進(jìn)位,異或運(yùn)算進(jìn)行不進(jìn)位加法
    assign C[0]  = (G[0] ^ op) ^ P[0] ^ op;
    assign ci[1] = (G[0] ^ op) & P[0] | op & ((G[0] ^ op) | P[0]);

    // 計(jì)算第二位的結(jié)果和進(jìn)位
    assign C[1]  = (G[1] ^ op) ^ P[1] ^ ci[1];
    assign ci[2] = (G[1] ^ op) & P[1] | ci[1] & ((G[1] ^ op) | P[1]);

    // 計(jì)算第三位的結(jié)果和進(jìn)位
    assign C[2]  = (G[2] ^ op) ^ P[2] ^ ci[2];
    assign ci[3] = (G[2] ^ op) & P[2] | ci[2] & ((G[2] ^ op) | P[2]);

    // 計(jì)算第四位的結(jié)果
    assign C[3]  = (G[3] ^ op) ^ P[3] ^ ci[3];

endmodule
//~ `New testbench

`timescale 1ns / 10ps

module tb_plus;

    // plus Inputs
    reg  [3:0] P = 0;
    reg  [3:0] G = 0;
    reg        op = 0;

    // plus Outputs
    wire [3:0] C;

    plus plus (
        .P (P[3:0]),
        .G (G[3:0]),
        .op(op),
        .C (C[3:0])
    );

    initial begin
	// 測(cè)試樣例1:
	// 2 + 4 = 6
        P  = 4'b0010;
        G  = 4'b0100;
        op = 0;
        #5;
	// 測(cè)試樣例2:
	// 9 + 3 = C
        P  = 4'b1001;
        op = 0;
        G  = 4'b0011;
        #5;
	// 測(cè)試樣例3:
	// 8 + 2 = A
        P  = 4'b1000;
        G  = 4'b0010;
        op = 0;
        #5;
	// 測(cè)試樣例4:
	// A - 4 = 6
        P  = 4'b1010;
        G  = 4'b0100;
        op = 1;
        #5;
	// 測(cè)試樣例5:
	// 9 - 7 = 2
        P  = 4'b1001;
        G  = 4'b0111;
        op = 1;
        #5;
	// 測(cè)試樣例6:
	// C - 1 = B
        P  = 4'b1100;
        G  = 4'b0001;
        op = 1;
        #5;
        $stop;
    end

endmodule
  • 第二種表達(dá):

module plus (
    input [3:0] P,
    input [3:0] G,
    input op,
    output [3:0] C
);
    /*
參數(shù)說(shuō)明
op 是運(yùn)算符號(hào),op = 0時(shí)是加法, op = 1時(shí)是減法
P 和 G 是兩個(gè)操作數(shù),C 是結(jié)果
即 P op G = C
*/

    // 定義一個(gè)變量輔助計(jì)算
    wire [3:0] ci;
    // 用ci記錄進(jìn)位,異或運(yùn)算進(jìn)行不進(jìn)位加法
    assign C[0]  = (G[0] ^ op) ^ P[0] ^ op;
    assign ci[0] = ((G[0] ^ op) & P[0]) || ((G[0] ^ op) & op) || (P[0] & op);

    // 計(jì)算第二位的結(jié)果和進(jìn)位
    assign C[1]  = (G[1] ^ op) ^ P[1] ^ ci[0];
    assign ci[1] = ((G[1] ^ op) & P[1]) || ((G[1] ^ op) & ci[0]) || (P[1] & ci[0]);

    // 計(jì)算第三位的結(jié)果和進(jìn)位
    assign C[2]  = (G[2] ^ op) ^ P[2] ^ ci[1];
    assign ci[2] = ((G[2] ^ op) & P[2]) || ((G[2] ^ op) & ci[1]) || (P[2] & ci[1]);

    // 計(jì)算第四位的結(jié)果
    assign C[3]  = (G[3] ^ op) ^ P[3] ^ ci[2];

endmodule
//~ `New testbench

`timescale 1ns / 10ps

module tb_plus;

    // plus Inputs
    reg  [3:0] P = 0;
    reg  [3:0] G = 0;
    reg        op = 0;

    // plus Outputs
    wire [3:0] C;

    plus plus (
        .P (P[3:0]),
        .G (G[3:0]),
        .op(op),
        .C (C[3:0])
    );

    initial begin
        $dumpfile("a.vcd");
        $dumpvars;

	// 測(cè)試樣例1:
	// 2 + 4 = 6
        P  = 4'b0010;
        G  = 4'b0100;
        op = 0;
        #5;
	// 測(cè)試樣例2:
	// 9 + 3 = C
        P  = 4'b1001;
        op = 0;
        G  = 4'b0011;
        #5;
	// 測(cè)試樣例3:
	// 8 + 2 = A
        P  = 4'b1000;
        G  = 4'b0010;
        op = 0;
        #5;
	// 測(cè)試樣例4:
	// A - 4 = 6
        P  = 4'b1010;
        G  = 4'b0100;
        op = 1;
        #5;
	// 測(cè)試樣例5:
	// 9 - 7 = 2
        P  = 4'b1001;
        G  = 4'b0111;
        op = 1;
        #5;
	// 測(cè)試樣例6:
	// C - 1 = B
        P  = 4'b1100;
        G  = 4'b0001;
        op = 1;
        #5;
        $finish;
    end

endmodule

這是上面的波形圖verilog四位加法器,fpga開(kāi)發(fā)


參考鏈接:
原碼, 反碼, 補(bǔ)碼 詳解
Verilog——串行四位加法器和超前四位加法器74HC283文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-516090.html

到了這里,關(guān)于Verilog實(shí)現(xiàn)四位加/減法器(邏輯表達(dá)式)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Verilog常用運(yùn)算符及表達(dá)式

    Verilog常用運(yùn)算符及表達(dá)式

    本文詳細(xì)介紹了Verilog常用的運(yùn)算符和表達(dá)式,特別是分享了處理“計(jì)算位寬溢出”和“負(fù)數(shù)”的可行方式,幫助讀者更加輕松地理解和掌握Verilog語(yǔ)言的運(yùn)算符。 算數(shù)運(yùn)算符:加(+)、減(-)、乘(*)、除(/)、取余(%) 賦值運(yùn)算符:非阻塞賦值(=)、阻塞賦值(=);

    2024年02月08日
    瀏覽(29)
  • Verilog基礎(chǔ):表達(dá)式中的整數(shù)常量(integer)

    Verilog基礎(chǔ):表達(dá)式中的整數(shù)常量(integer)

    相關(guān)文章 Verilog基礎(chǔ)專欄 https://blog.csdn.net/weixin_45791458/category_12263729.html ? ????????整數(shù)常量可以由十進(jìn)制、十六進(jìn)制、八進(jìn)制或二進(jìn)制格式指定。 ? ? ? ? 整數(shù)常量有兩種表現(xiàn)形式。 ????????第一種表現(xiàn)形式是一個(gè)簡(jiǎn)單的十進(jìn)制數(shù),應(yīng)指定為0到9的數(shù)字序列,可以選

    2024年02月08日
    瀏覽(22)
  • Verilog基礎(chǔ):表達(dá)式位寬的確定(位寬拓展)

    Verilog基礎(chǔ):表達(dá)式位寬的確定(位寬拓展)

    相關(guān)文章 Verilog基礎(chǔ)專欄 https://blog.csdn.net/weixin_45791458/category_12263729.html 表達(dá)式位寬 ????????如果想要在計(jì)算表達(dá)式時(shí)獲得和諧一致的結(jié)果,那么控制表達(dá)式中的位寬就很重要。很多時(shí)候方法很簡(jiǎn)單。例如,如果在兩個(gè)16位數(shù)據(jù)的reg變量上做位與操作,那么計(jì)算結(jié)果很顯然

    2023年04月18日
    瀏覽(25)
  • 計(jì)算機(jī)組成原理 實(shí)驗(yàn)一 四位加法器設(shè)計(jì)

    計(jì)算機(jī)組成原理 實(shí)驗(yàn)一 四位加法器設(shè)計(jì)

    實(shí)驗(yàn)開(kāi)發(fā)平臺(tái):武漢華亨科技公司的EDA/SOPC實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)由NIOSII—EP3C40核心板、EDA/SOPC系統(tǒng)板和HH-SEXT-1擴(kuò)充子板組成。? 芯片編號(hào):EP3C40F780C8? 軟件:Quartus?II?64-Bit?13.1.0.162? 啟動(dòng)Quartus 13.1 創(chuàng)建子項(xiàng)目full_adder,芯片選擇EP3C40F780C8? ?新建Verilog HDL File,輸入一位全加器代碼并保

    2024年02月07日
    瀏覽(34)
  • verilog實(shí)現(xiàn)除法器運(yùn)算

    verilog實(shí)現(xiàn)除法器運(yùn)算

    本文通過(guò)verilog實(shí)現(xiàn)了一個(gè)位寬參數(shù)可配置的除法運(yùn)算模塊 我們要計(jì)算 a_data/b_data = div_data ----remain_data ; ?? 確定位寬 :若a_data的位寬為A_WIDTH, b_data的位寬為B_WIDTH;則div_data的最大位寬為A_WIDTH, remain_data的位寬為B_WIDTH; ?? 計(jì)算div_data的最高位 :若a_data = (b_data(A_WIDTH-1)), 則di

    2024年02月06日
    瀏覽(16)
  • Python學(xué)習(xí)筆記:正則表達(dá)式、邏輯運(yùn)算符、lamda、二叉樹(shù)遍歷規(guī)則、類的判斷

    Python學(xué)習(xí)筆記:正則表達(dá)式、邏輯運(yùn)算符、lamda、二叉樹(shù)遍歷規(guī)則、類的判斷

    序號(hào) 實(shí)例 說(shuō)明 1 . 匹配任何字符(除換行符以外) 2 d 等效于[0-9],匹配數(shù)字 3 D 等效于[^0-9],匹配非數(shù)字 4 s 等效于[trnf],匹配空格字符 5 S 等效于[^trnf],匹配非空格字符 6 w 等效于[A-Za-z0-9],匹配單字字符 7 W 等效于[^A-Za-z0-9],匹配非單字字符 8 [ab]cdef 匹配acdef或bcd

    2024年02月11日
    瀏覽(60)
  • 數(shù)字IC經(jīng)典電路(3)——經(jīng)典除法器的實(shí)現(xiàn)(除法器簡(jiǎn)介及Verilog實(shí)現(xiàn))

    數(shù)字IC經(jīng)典電路(3)——經(jīng)典除法器的實(shí)現(xiàn)(除法器簡(jiǎn)介及Verilog實(shí)現(xiàn))

    除法器是一種用于執(zhí)行除法運(yùn)算的電路或器件。在數(shù)字電路中,除法器經(jīng)常被用作重要的計(jì)算單元,其主要功能是將一個(gè)數(shù)除以另一個(gè)數(shù)并給出商和余數(shù)。 與加法器和減法器類似,除法器也屬于算術(shù)邏輯單元(ALU)的一種。不同的是,加法器和減法器能夠執(zhí)行加法和減法運(yùn)算,

    2024年02月02日
    瀏覽(26)
  • 基于verilog的除法器的實(shí)現(xiàn)

    基于verilog的除法器的實(shí)現(xiàn)

    本文應(yīng)該是目前全網(wǎng)最通俗易懂,而且比較全面的用verilog實(shí)現(xiàn)除法器的文章。首先說(shuō)明一下本文的探討的重點(diǎn)。我們首先從整數(shù)的除法開(kāi)始講起,然后慢慢延伸到小數(shù)的除法,和負(fù)數(shù)的除法。 對(duì)于一個(gè)除法器來(lái)說(shuō),他的實(shí)現(xiàn)框架應(yīng)該是下面這個(gè)圖: 在這個(gè)框架圖中,A是被除

    2024年02月05日
    瀏覽(14)
  • Verilog實(shí)現(xiàn)超前進(jìn)位加法器

    Verilog實(shí)現(xiàn)超前進(jìn)位加法器

    在CPU等對(duì)性能要求較高的電路中,一般都會(huì)采用超前進(jìn)位加法器,因?yàn)槌斑M(jìn)位加法器的延時(shí)相對(duì)來(lái)說(shuō)比較小。下面講述超前進(jìn)位加法器的原理: 我們知道,一個(gè)三輸入,二輸出的全加器,其邏輯關(guān)系為 S = A ⊕ B ⊕ C i n S=Aoplus Boplus C_{in} S = A ⊕ B ⊕ C in ? C o u t = ( A B ) ∣

    2023年04月08日
    瀏覽(16)
  • 數(shù)字IC經(jīng)典電路(2)——經(jīng)典乘法器的實(shí)現(xiàn)(乘法器簡(jiǎn)介及Verilog實(shí)現(xiàn))

    數(shù)字IC經(jīng)典電路(2)——經(jīng)典乘法器的實(shí)現(xiàn)(乘法器簡(jiǎn)介及Verilog實(shí)現(xiàn))

    數(shù)字電路中乘法器是一種常見(jiàn)的電子元件,其基本含義是將兩個(gè)數(shù)字相乘,并輸出其乘積。與加法器不同,乘法器可以實(shí)現(xiàn)更復(fù)雜的運(yùn)算,因此在數(shù)字電路系統(tǒng)中有著廣泛的應(yīng)用。 乘法器的主要用途是在數(shù)字信號(hào)處理、計(jì)算機(jī)科學(xué)以及其他數(shù)字電路應(yīng)用中進(jìn)行精確的數(shù)字乘法

    2024年02月06日
    瀏覽(101)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包