在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用Verilog/SystemVerilog硬件描述語言 (HDL) 練習數字硬件設計

OpenFPGA ? 來源:OpenFPGA ? 作者:碎碎思 ? 2022-09-15 09:11 ? 次閱讀

題目說明

給出了一個可以做16bit加法的模塊add16,實例化兩個add16以達到32bit加法的。

1229a180-3493-11ed-ba43-dac502259ad0.png

這個題目的核心就是上面的圖片,將兩個16bit加法合成32bit加法即可。

模塊端口聲明

moduletop_module(
input[31:0]a,
input[31:0]b,
output[31:0]sum
);

題目解析

這個題目重點是進位的處理,一個add16模塊計算結果的低16位,另一個add16模塊在接收到第一個的進位后計算結果的高16位。此32bit加法器不需要處理輸入進位(假設為0)和輸出進位(無需進位),但為了內部模塊為了結果的正確仍要處理進位信號。(換句話說,add16模塊執行16bit的a+b+cin,而頂層模塊執行32bit的a+b)

moduletop_module(
inputlogic[31:0]a,
inputlogic[31:0]b,
outputlogic[31:0]sum
);

wirelogic[15:0]sum_temp0,sum_temp1;
varlogiccout1;
add16d1(
.a(a[15:0]),
.b(b[15:0]),
.cin(1'd0),
.sum(sum_temp0),
.cout(cout1)
);

add16d2(
.a(a[31:16]),
.b(b[31:16]),
.cin(cout1),
.sum(sum_temp1),
.cout()
);

assignsum={sum_temp1,sum_temp0};
endmodule


1273475e-3493-11ed-ba43-dac502259ad0.png

點擊Submit,等待一會就能看到下圖結果:

12a995c0-3493-11ed-ba43-dac502259ad0.png

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網站會對比這兩個波形,一旦這兩者不匹配,仿真結果會變紅。

這一題就結束了。

Problem 25-Module fadd

題目說明

在本練習中,將創建具有兩個層次結構的電路。top_module將實例化add16(提供)的兩個副本,每個副本將實例化add1(必須自己編寫)的 16 個副本。因此,必須編寫兩個模塊:top_module和add1。與Problem 24: Adder 1(Module add)一樣,提供給您一個執行16bit的加法的模塊。您需要實例化兩個16bit加法模塊來實現32bit加法器。一個add16計算加法結果的低16位,另一個計算結果的高16位。您的32位加法器同樣不需要處理進位輸入(假設為0)和進位輸出(無需進位)信號。

如下圖所示,將add16模塊連接在一起,給出的add16模塊如下:

moduleadd16(input[15:0]a,input[15:0]b,inputcin,output[15:0]sum,outputcout);

在每個add16中,16 個全加器(模塊add1,未提供)被實例化以實際執行加法。必須編寫具有以下聲明的完整加法器模塊:

moduleadd1(inputa,inputb,inputcin,outputsum,outputcout);

回想一下,全加器計算 a+b+cin 的和和進位。

綜上所述,本設計共有三個模塊:

top_module— 頂級模塊包含兩個add16

add16 — 一個 16 位加法器模塊,由 16 個add1組成

add1 — 1 位全加器模塊。

如果提交缺少add1模塊,將收到一條錯誤消息,內容為:

Error(12006):Nodeinstance"user_fadd[0].a1"instantiatesundefinedentity"add1".
136825bc-3493-11ed-ba43-dac502259ad0.png?

模塊端口聲明

moduletop_module(
input[31:0]a,
input[31:0]b,
output[31:0]sum
);

題目解析

只比上一題復雜些,核心內容沒變。

moduletop_module(
inputlogic[31:0]a,
inputlogic[31:0]b,
outputlogic[31:0]sum
);//

wirelogiccout;

add16u1_add16(
.a(a[15:0]),
.b(b[15:0]),
.cin(1'd0),
.sum(sum[15:0]),
.cout(cout)
);

add16u2_add16(
.a(a[31:16]),
.b(b[31:16]),
.cin(cout),
.sum(sum[31:16]),
.cout()
);

endmodule

moduleadd1(inputlogica,
inputlogicb,
inputlogiccin,
outputlogicsum,
outputlogiccout
);

//Fulladdermodulehere
assign{cout,sum}=a+b+cin;
endmodule



13b7c2a2-3493-11ed-ba43-dac502259ad0.png

點擊Submit,等待一會就能看到下圖結果:

14596c10-3493-11ed-ba43-dac502259ad0.png

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網站會對比這兩個波形,一旦這兩者不匹配,仿真結果會變紅。

這一題就結束了。

Problem 26-Module_cseladd

題目說明

上一個練習中(Problem 25: Adder 2(Module fadd))實現的加法器應該叫做行波進位加法器(RCA: Ripple-Carry Adder)。這種加法器的缺點是計算進位輸出的延遲是相當慢的(最壞的情況下,來自于進位輸入)。并且如果前一級加法器計算完成之前,后一級加法器不能開始計算。這又使得加法器的計算延遲變大。

一種改進是進位選擇加法器,如下所示。第一級加法器與之前相同,但我們復制第二級加法器,一個假設進位=0,一個假設進位=1,然后使用快速2對1多路復用器選擇哪個結果碰巧是正確的。

在本練習中,將獲得與上一個練習相同的模塊add16,該模塊將兩個 16 位數字與進位相加,并產生一個進位和 16 位和。必須實例化其中的三add16來構建進位選擇加法器,同時實現16bit的2選1選擇器來選擇結果。

如下圖所示將模塊連接在一起。提供的模塊add16具有以下聲明:

moduleadd16(input[15:0]a,input[15:0]b,inputcin,output[15:0]sum,outputcout);
1493103c-3493-11ed-ba43-dac502259ad0.png?

模塊端口聲明

moduletop_module(
input[31:0]a,
input[31:0]b,
output[31:0]sum
);

題目解析

這題是上一題的改進版本的加法器,其實這也是我們數電上學到的CSA(Carry-Select Adder,選擇進位加法器),其相對于行波進位加法器延遲小一半左右,但是其是利用資源換取的,所以相應消耗的資源增加約一倍。

moduletop_module(
inputlogic[31:0]a,
inputlogic[31:0]b,
outputlogic[31:0]sum
);

wirelogiccout_sel;
wirelogic[15:0]upperbit_sum0,upperbit_sum1;
add16u0_add16(
.a(a[15:0]),
.b(b[15:0]),
.cin(1'd0),
.sum(sum[15:0]),
.cout(cout_sel)
);

add16u1_add16(
.a(a[31:16]),
.b(b[31:16]),
.cin(1'd0),
.sum(upperbit_sum0),
.cout()
);

add16u2_add16(
.a(a[31:16]),
.b(b[31:16]),
.cin(1'd1),
.sum(upperbit_sum1),
.cout()
);

always_comb
begin
uniquecase(cout_sel)

1'd0:sum[31:16]=upperbit_sum0;
1'd1:sum[31:16]=upperbit_sum1;
default:sum[31:16]=upperbit_sum0;
endcase
end
endmodule


14dc2d44-3493-11ed-ba43-dac502259ad0.png

點擊Submit,等待一會就能看到下圖結果:

15530ec8-3493-11ed-ba43-dac502259ad0.png

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網站會對比這兩個波形,一旦這兩者不匹配,仿真結果會變紅。

這一題就結束了。

Problem 27-Module addsub

題目說明

減法器可以通過選擇性地取反一個輸入而從加法器構建,這相當于將輸入反相然后加 1。最終結果是一個可以執行兩種操作的電路:(a + b + 0) 和 ( a + ~b + 1)。

題目要求構建下面的加減法器。

提供了一個 16 位加法器模塊,需要對其進行兩次實例化:

moduleadd16(input[15:0]a,input[15:0]b,inputcin,output[15:0]sum,outputcout);

每當sub為 1 時,使用 32 位寬的 XOR 門來反轉b輸入。(這也可以被視為b[31:0]與sub復制32次相異或)。同時sub信號連接到加法器的進位。

157e92d2-3493-11ed-ba43-dac502259ad0.png 圖片來自 HDLBits

模塊端口聲明

moduletop_module(
input[31:0]a,
input[31:0]b,
inputsub,
output[31:0]sum
);

題目解析

這個題目考察的是減法器,這里就用到數電小常識:減去一個數等于加上這個數的補碼(就是題中的按位取反再加1)。

moduletop_module(
inputlogic[31:0]a,
inputlogic[31:0]b,
inputlogicsub,
outputlogic[31:0]sum
);

wirelogiccout_0;
wirelogic[31:0]b_reverse;
assignb_reverse=b^{32{sub}};

add16u1_add16(
.a(a[15:0]),
.b(b_reverse[15:0]),
.cin(sub),
.sum(sum[15:0]),
.cout(cout_0)
);


add16u2_add16(
.a(a[31:16]),
.b(b_reverse[31:16]),
.cin(cout_0),
.sum(sum[31:16]),
.cout()
);
endmodule


15b47b9a-3493-11ed-ba43-dac502259ad0.png

點擊Submit,等待一會就能看到下圖結果:

1655d166-3493-11ed-ba43-dac502259ad0.png

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網站會對比這兩個波形,一旦這兩者不匹配,仿真結果會變紅。

這一題就結束了。




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Verilog
    +關注

    關注

    29

    文章

    1366

    瀏覽量

    111964
  • HDL
    HDL
    +關注

    關注

    8

    文章

    330

    瀏覽量

    47877
  • 加法器
    +關注

    關注

    6

    文章

    183

    瀏覽量

    30650

原文標題:HDLBits: 在線學習 SystemVerilog(六)-Problem 24-27

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    FPGA Verilog HDL語法之編譯預處理

    Verilog HDL語言和C語言一樣也提供了編譯預處理的功能。“編譯預處理”是Verilog HDL
    的頭像 發表于 03-27 13:30 ?509次閱讀
    FPGA <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>語法之編譯預處理

    一文詳解Verilog HDL

    Verilog HDL(Hardware Description Language)是一種硬件描述語言,用于從算法級、門級到開關級的多種抽象設計層次的
    的頭像 發表于 03-17 15:17 ?2103次閱讀
    一文詳解<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>

    千兆網絡PHY芯片RTL8211E的實踐應用

    以太網MAC模塊負責實現以太網MAC子層的功能,完成802.3ab的數據封裝與解封。其同時負責適配硬件PHY的物理接口,組成物理層的通訊接口; 硬件系統的功能可以通過 Verilog HDL
    的頭像 發表于 03-17 13:56 ?3783次閱讀
    千兆網絡PHY芯片RTL8211E的實踐應用

    淺談Verilog和VHDL的區別

    Verilog和VHDL是兩種廣泛使用的硬件描述語言HDL),它們用于描述和模擬數字電路系統的
    的頭像 發表于 02-17 14:20 ?1321次閱讀
    淺談<b class='flag-5'>Verilog</b>和VHDL的區別

    數字電路編程語言介紹

    數字電路編程語言是專門為描述和模擬數字電路而設計的編程語言。它們通常具有以下特點: 硬件
    的頭像 發表于 01-24 09:39 ?665次閱讀

    Verilog 電路仿真常見問題 Verilog 在芯片設計中的應用

    在現代電子設計自動化(EDA)領域,Verilog作為一種硬件描述語言,已經成為數字電路設計和驗證的標準工具。它允許設計師以高級抽象的方式定義電路的行為和結構,從而簡化了從概念到硅片的
    的頭像 發表于 12-17 09:53 ?1107次閱讀

    Verilog 與 ASIC 設計的關系 Verilog 代碼優化技巧

    Verilog與ASIC設計的關系 Verilog作為一種硬件描述語言HDL),在ASIC設計中扮演著至關重要的角色。ASIC(Appli
    的頭像 發表于 12-17 09:52 ?952次閱讀

    Verilog與VHDL的比較 Verilog HDL編程技巧

    理解。 VHDL :VHDL 的語法更接近于 Ada 語言,它是一種更正式的語言,具有豐富的數據類型和結構。VHDL 支持數據流、行為和結構化三種描述方式。 2. 可讀性和可維護性 Veril
    的頭像 發表于 12-17 09:44 ?1538次閱讀

    數字系統設計與Verilog HDL

    數字系統設計與Verilog HDL 1.兼職職位 ,不坐班,等待公司分配任務,時間自由 2.薪資: 200-5000不等可具體協商 3.要求:國內985/211院校在讀或畢業,或者國外前100的院校 4.英語水平:四級500+
    發表于 11-06 17:57

    Verilog硬件描述語言參考手冊

    一. 關于 IEEE 1364 標準二. Verilog簡介三. 語法總結四. 編寫Verilog HDL源代碼的標準五. 設計流程
    發表于 11-04 10:12 ?4次下載

    system verilog語言簡介

    ICer需要System Verilog語言得加成,這是ICer深度的表現。
    發表于 11-01 10:44 ?0次下載

    FPGA編程語言的入門教程

    FPGA(現場可編程邏輯門陣列)的編程涉及特定的硬件描述語言HDL),其中Verilog和VHDL是最常用的兩種。以下是一個FPGA編程語言
    的頭像 發表于 10-25 09:21 ?1069次閱讀

    Verilog HDL的基礎知識

    本文繼續介紹Verilog HDL基礎知識,重點介紹賦值語句、阻塞與非阻塞、循環語句、同步與異步、函數與任務語法知識。
    的頭像 發表于 10-24 15:00 ?1109次閱讀
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>的基礎知識

    【「數字IC設計入門」閱讀體驗】+ 概觀

    講解了Verilog語言語法,沒有寫過Verilog代碼,只知道它是一種描述語言,使用Verilog
    發表于 09-24 10:58

    FPGA Verilog HDL有什么奇技巧?

    相加去乘? A:硬件乘法器具有重要意義,主要體現在以下幾個方面: 速度優勢:在數字電路中,直接使用移位相加的方法實現乘法在速度上通常比通過軟件或簡單的邏輯運算(如在 Verilog 中直接寫 a * b
    發表于 09-12 19:10
    主站蜘蛛池模板: 色媚网| 男人午夜禁片在线观看 | 激情文学综合网 | 96福利视频 | 欧美日韩亚洲国产一区二区综合 | 成人美女隐私免费 | 激情久久久久久久久久 | 男女爱爱免费高清 | 中文字幕天天躁夜夜狠狠综合 | 超黄视频在线观看 | 丁香花五月天婷婷 | 国产在线播 | 亚洲欧洲色天使日韩精品 | 在线视频图片小说 | 天天看片天天爽 | 欧美一级视频免费看 | 国产乱码精品一区二区三区四川人 | 最近的中文字幕免费动漫视频 | 日韩怡红院 | 国产日本久久久久久久久婷婷 | 中文字幕网资源站永久资源 | 高清性色生活片久久久 | 色综合天天综合网国产国产人 | 成zzzwww日本免费 | 亚洲欧美在线精品一区二区 | 成人欧美一区二区三区视频 | 九九精品在线观看 | 免费黄色福利 | 国产成人精品系列在线观看 | 99久久免费精品视频 | 午夜色福利 | 男女一进一出抽搐免费视频 | 欧美日韩一日韩一线不卡 | 色播五月激情五月 | 成年人三级视频 | 日韩天堂| 尻老逼| 5月婷婷6月丁香 | 一个色综合网站 | 国产精品青草久久 | 国产午夜视频在永久在线观看 |