chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

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

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模塊計算結(jié)果的低16位,另一個add16模塊在接收到第一個的進位后計算結(jié)果的高16位。此32bit加法器不需要處理輸入進位(假設(shè)為0)和輸出進位(無需進位),但為了內(nèi)部模塊為了結(jié)果的正確仍要處理進位信號。(換句話說,add16模塊執(zhí)行16bit的a+b+cin,而頂層模塊執(zhí)行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,等待一會就能看到下圖結(jié)果:

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

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

這一題就結(jié)束了。

Problem 25-Module fadd

題目說明

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

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

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

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

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

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

綜上所述,本設(shè)計共有三個模塊:

top_module— 頂級模塊包含兩個add16

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

add1 — 1 位全加器模塊。

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

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
);

題目解析

只比上一題復(fù)雜些,核心內(nèi)容沒變。

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,等待一會就能看到下圖結(jié)果:

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

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

這一題就結(jié)束了。

Problem 26-Module_cseladd

題目說明

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

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

在本練習(xí)中,將獲得與上一個練習(xí)相同的模塊add16,該模塊將兩個 16 位數(shù)字與進位相加,并產(chǎn)生一個進位和 16 位和。必須實例化其中的三add16來構(gòu)建進位選擇加法器,同時實現(xiàn)16bit的2選1選擇器來選擇結(jié)果。

如下圖所示將模塊連接在一起。提供的模塊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
);

題目解析

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

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,等待一會就能看到下圖結(jié)果:

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

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

這一題就結(jié)束了。

Problem 27-Module addsub

題目說明

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

題目要求構(gòu)建下面的加減法器。

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

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

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

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

模塊端口聲明

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

題目解析

這個題目考察的是減法器,這里就用到數(shù)電小常識:減去一個數(shù)等于加上這個數(shù)的補碼(就是題中的按位取反再加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,等待一會就能看到下圖結(jié)果:

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

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

這一題就結(jié)束了。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Verilog
    +關(guān)注

    關(guān)注

    30

    文章

    1373

    瀏覽量

    114461
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    331

    瀏覽量

    48948
  • 加法器
    +關(guān)注

    關(guān)注

    6

    文章

    183

    瀏覽量

    31393

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

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    HLS設(shè)計中的BRAM使用優(yōu)勢

    高層次綜合(HLS)是一種將高級編程語言(如C、C++或SystemC)轉(zhuǎn)換為硬件描述語言HDL)的設(shè)計方法。在FPGA設(shè)計中,設(shè)計者可以靈活地利用FPGA內(nèi)部的資源,如塊RAM(B
    的頭像 發(fā)表于 01-28 14:36 ?217次閱讀

    基于FPGA VHDL的FSK調(diào)制與解調(diào)設(shè)計

    VHDL誕生于1982年。在1987年底,VHDL被IEEE和美國國防部確認為標準硬件描述語言
    的頭像 發(fā)表于 01-27 10:58 ?293次閱讀
    基于FPGA VHDL的FSK調(diào)制與解調(diào)設(shè)計

    通過vivado HLS設(shè)計一個FIR低通濾波器

    Vivado HLS是一款強大的高層次綜合工具,可將C/C++代碼轉(zhuǎn)換為硬件描述語言HDL),顯著提升FPGA開發(fā)效率。
    的頭像 發(fā)表于 01-20 16:19 ?254次閱讀
    通過vivado HLS設(shè)計一個FIR低通濾波器

    FPGA 入門必看:Verilog 與 VHDL 編程基礎(chǔ)解析!

    很多開發(fā)者第一次接觸FPGA,都會有同樣的疑問:FPGA是硬件,不是軟件,怎么寫程序?答案就是用硬件描述語言HDL),最常用的就是Verilog
    的頭像 發(fā)表于 01-19 09:05 ?387次閱讀
    FPGA 入門必看:<b class='flag-5'>Verilog</b> 與 VHDL 編程基礎(chǔ)解析!

    如何使用Modelsim仿真I2C控制器

    ModelSim是Model Technology(Mentor Graphics的子公司)的HDL硬件描述語言的仿真軟件。該軟件可以用來實現(xiàn)對設(shè)計的VHDL、Verilog
    的頭像 發(fā)表于 01-10 14:14 ?5047次閱讀
    如何使用Modelsim仿真I2C控制器

    【產(chǎn)品介紹】Modelsim:HDL語言仿真軟件

    概述ModelSim是業(yè)界最優(yōu)秀的HDL語言仿真軟件,它能提供友好的仿真環(huán)境,是業(yè)界唯一的單內(nèi)核支持VHDL和Verilog混合仿真的仿真器。它采用直接優(yōu)化的編譯技術(shù)、Tcl/Tk技術(shù)、和單一內(nèi)核
    的頭像 發(fā)表于 11-13 11:41 ?462次閱讀
    【產(chǎn)品介紹】Modelsim:<b class='flag-5'>HDL</b><b class='flag-5'>語言</b>仿真軟件

    復(fù)雜的軟件算法硬件IP核的實現(xiàn)

    模型,它是從傳統(tǒng)的計算機匯編語言演變而來,同時它是支持指令集級的并行執(zhí)行??梢哉J為 HASM 是一種比 VHDL 或Verilog 稍微高級一點的硬件描述語言,但是和 C
    發(fā)表于 10-30 07:02

    如何利用Verilog HDL在FPGA上實現(xiàn)SRAM的讀寫測試

    本篇將詳細介紹如何利用Verilog HDL在FPGA上實現(xiàn)SRAM的讀寫測試。SRAM是一種非易失性存儲器,具有高速讀取和寫入的特點。在FPGA中實現(xiàn)SRAM讀寫測試,包括設(shè)計SRAM接口模塊
    的頭像 發(fā)表于 10-22 17:21 ?4316次閱讀
    如何利用<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>在FPGA上實現(xiàn)SRAM的讀寫測試

    硬件:我就說還得靠我

    硬件
    揚興科技
    發(fā)布于 :2025年05月26日 18:27:09

    FPGA Verilog HDL語法之編譯預(yù)處理

    Verilog HDL語言和C語言一樣也提供了編譯預(yù)處理的功能?!熬幾g預(yù)處理”是Verilog HDL
    的頭像 發(fā)表于 03-27 13:30 ?1398次閱讀
    FPGA <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>語法之編譯預(yù)處理

    一文詳解Verilog HDL

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

    千兆網(wǎng)絡(luò)PHY芯片RTL8211E的實踐應(yīng)用

    以太網(wǎng)MAC模塊負責(zé)實現(xiàn)以太網(wǎng)MAC子層的功能,完成802.3ab的數(shù)據(jù)封裝與解封。其同時負責(zé)適配硬件PHY的物理接口,組成物理層的通訊接口; 硬件系統(tǒng)的功能可以通過 Verilog HDL
    的頭像 發(fā)表于 03-17 13:56 ?8844次閱讀
    千兆網(wǎng)絡(luò)PHY芯片RTL8211E的實踐應(yīng)用

    華為技術(shù)資料合集(硬件開發(fā)/C語言/PCB設(shè)計/天線通信)

    本帖最后由 yuu_cool 于 2025-3-17 09:54 編輯 本資料內(nèi)容介紹:包含 華為硬件工程師手冊_全(159頁), 華為C語言編程規(guī)范, 華為PCB設(shè)計規(guī)范, 華為PCB
    發(fā)表于 03-17 09:54