一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

HDLBits: 在線學(xué)習(xí)SystemVerilog-Problem

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-10-20 09:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

HDLBits 是一組小型電路設(shè)計(jì)習(xí)題集,使用 Verilog/SystemVerilog 硬件描述語言 (HDL) 練習(xí)數(shù)字硬件設(shè)計(jì)~

網(wǎng)址如下:

https://hdlbits.01xz.net/

關(guān)于HDLBits的Verilog實(shí)現(xiàn)可以查看下面專欄:

https://www.zhihu.com/column/c_1131528588117385216

縮略詞索引

  • SV:SystemVerilog

從今天開始新的一章-Circuits,包括基本邏輯電路、時(shí)序電路、組合電路等。

今天更新整個(gè)多路選擇器一小節(jié)題目,多路選擇器也是組合電路的基本電路。

Problem 60-Mux2to1

題目說明

創(chuàng)建一個(gè)一位寬2路選擇器。當(dāng) sel=0 時(shí),選擇 a。當(dāng) sel=1 時(shí),選擇 b。

模塊端口聲明

moduletop_module(
inputa,b,sel,
outputout);

題目解析

這個(gè)題目沒什么難度,看下面參考代碼即可:

moduletop_module(
inputlogica,b,sel,
outputlogicout);

assignout=sel?b:a;


endmodule

f837d93a-5013-11ed-a3b6-dac502259ad0.png

點(diǎn)擊Submit,等待一會(huì)就能看到下圖結(jié)果:

f84fbac8-5013-11ed-a3b6-dac502259ad0.png

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

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

Problem 61-Mux2to1v

題目說明

創(chuàng)建一個(gè)100位寬2路選擇器。當(dāng) sel=0 時(shí),選擇 a。當(dāng) sel=1 時(shí),選擇 b。

模塊端口聲明

moduletop_module(
input[99:0]a,b,
inputsel,
output[99:0]out);

題目解析

這道題難度不大核心代碼只有一行。

簡單解答

moduletop_module(
inputlogic[99:0]a,b,
inputlogicsel,
outputlogic[99:0]out);


assignout=sel?b:a;

endmodule
f887119e-5013-11ed-a3b6-dac502259ad0.png

點(diǎn)擊Submit,等待一會(huì)就能看到下圖結(jié)果:

f8af938a-5013-11ed-a3b6-dac502259ad0.png

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

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

Problem 62-Mux9to1v

題目說明

創(chuàng)建一個(gè) 16 位寬的 9 選 1 多路選擇器。sel=0 選擇 a,sel=1 選擇 b,等等。對(duì)于未使用的情況(sel=9 到 15),將所有輸出位設(shè)置為“1”。

模塊端口聲明

moduletop_module(
input[15:0]a,b,c,d,e,f,g,h,i,
input[3:0]sel,
output[15:0]out);

題目解析

這種多路選擇,用條件運(yùn)算顯然不合適,所以我們選擇使用case。

moduletop_module(
inputlogic[15:0]a,b,c,d,e,f,g,h,i,
inputlogic[3:0]sel,
outputlogic[15:0]out);

always_combbegin
case(sel)
4'd0:begin
out=a;
end
4'd1:begin
out=b;
end
4'd2:begin
out=c;
end
4'd3:begin
out=d;
end
4'd4:begin
out=e;
end
4'd5:begin
out=f;
end
4'd6:begin
out=g;
end
4'd7:begin
out=h;
end
4'd8:begin
out=i;
end
default:begin
out=16'hffff;
end
endcase
end

endmodule

f8ddef00-5013-11ed-a3b6-dac502259ad0.png

點(diǎn)擊Submit,等待一會(huì)就能看到下圖結(jié)果:

f8ee8d88-5013-11ed-a3b6-dac502259ad0.png

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

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

Problem 63-Mux256to1

題目說明

創(chuàng)建一個(gè) 1 位寬、256 選 1 的多路選擇器。256 個(gè)輸入打包成一個(gè) 256 位輸入向量。sel=0 應(yīng)該選擇in[0], sel=1 選擇in[1]位, sel=2 選擇in[2]位,等等。

模塊端口聲明

moduletop_module(
input[255:0]in,
input[7:0]sel,
outputout);

題目解析

題目輸入是一個(gè)向量,我們?cè)谠O(shè)計(jì)的時(shí)候不可能按照case或者三元運(yùn)算去做設(shè)計(jì)(工作量巨大),所以我們需要觀察這個(gè)題目的特點(diǎn),輸入是256位寬,是不是2^8次方?

根據(jù)題目提示:選擇運(yùn)算符的 index 可以為變量,只要變量的位寬和向量的長度匹配即可。

So?

moduletop_module(
inputlogic[255:0]in,
inputlogic[7:0]sel,
outputlogicout);
assignout=in[sel];
endmodule
f9229506-5013-11ed-a3b6-dac502259ad0.png

點(diǎn)擊Submit,等待一會(huì)就能看到下圖結(jié)果:

f93b6ea0-5013-11ed-a3b6-dac502259ad0.png

注意圖中無波形。

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

Problem 64-Mux256to1v

題目說明

本題中需要實(shí)現(xiàn)一個(gè) 256 選 1 選擇器,sel 信號(hào)作為選擇信號(hào),當(dāng) sel = 0 時(shí)選擇 in[3:0],sel = 1 時(shí)選擇 in[7:4],以此類推。同上一題的區(qū)別在于,位寬從 1 位變到了 4 位。

模塊端口聲明

moduletop_module(
input[1023:0]in,
input[7:0]sel,
output[3:0]out);

題目解析

將上一題答案稍加改造即可,選擇的位跨4位并且+4。

moduletop_module(
inputlogic[1023:0]in,
inputlogic[7:0]sel,
outputlogic[3:0]out);
assignout=in[sel*4+:4];
endmodule
f945828c-5013-11ed-a3b6-dac502259ad0.png

點(diǎn)擊Submit,等待一會(huì)就能看到下圖結(jié)果:

f95fab4e-5013-11ed-a3b6-dac502259ad0.png

注意圖中無波形。

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

總結(jié)

今天的幾道題就結(jié)束了,整體比較簡單,沒有復(fù)雜的代碼,沒有復(fù)雜的設(shè)計(jì)思路。

最后我這邊做題的代碼也是個(gè)人理解使用,有錯(cuò)誤歡迎大家批評(píng)指正,祝大家學(xué)習(xí)愉快~

代碼鏈接:

https://github.com/suisuisi/SystemVerilog/tree/main/SystemVerilogHDLBits


審核編輯 :李倩


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

    關(guān)注

    13

    文章

    502

    瀏覽量

    43351
  • Verilog
    +關(guān)注

    關(guān)注

    29

    文章

    1367

    瀏覽量

    112289
  • 選擇器
    +關(guān)注

    關(guān)注

    0

    文章

    110

    瀏覽量

    14825

原文標(biāo)題:HDLBits: 在線學(xué)習(xí) SystemVerilog(十一)-Problem 60-64

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    KM亮相石油化工展#在線監(jiān)測

    在線監(jiān)測
    KM預(yù)測性維護(hù)專家
    發(fā)布于 :2025年06月20日 15:41:55

    KM告訴你什么是在線監(jiān)測?#

    在線監(jiān)測
    KM預(yù)測性維護(hù)專家
    發(fā)布于 :2025年06月19日 14:07:22

    KMPHM在線監(jiān)測系統(tǒng) 讓設(shè)備故障無處遁形#在線監(jiān)測#振動(dòng)在線監(jiān)測

    在線監(jiān)測
    KM預(yù)測性維護(hù)專家
    發(fā)布于 :2025年05月22日 16:30:08

    #諧波在線監(jiān)測裝置操作界面

    在線監(jiān)測
    aozhuogeng
    發(fā)布于 :2025年05月01日 09:23:46

    #諧波在線監(jiān)測裝置核心作用

    在線監(jiān)測
    aozhuogeng
    發(fā)布于 :2025年04月22日 09:06:09

    KMPHM在線監(jiān)測平臺(tái)賦能設(shè)備管理升級(jí)#在線監(jiān)測#振動(dòng)監(jiān)測

    在線監(jiān)測
    KM預(yù)測性維護(hù)專家
    發(fā)布于 :2025年03月06日 14:51:51

    實(shí)現(xiàn)工廠效益最大化 KMPHM在線監(jiān)測高效代替人工巡檢#在線監(jiān)測 #振動(dòng)監(jiān)測

    在線監(jiān)測
    KM預(yù)測性維護(hù)專家
    發(fā)布于 :2025年02月28日 09:21:03

    賽盛EMC在線學(xué)習(xí)平臺(tái):揭秘學(xué)習(xí)寶典&工具秘籍!

    《賽盛在線學(xué)習(xí)及工具應(yīng)用》線上發(fā)布會(huì)SESOnline【經(jīng)驗(yàn)結(jié)晶,智啟未來之路】在電磁兼容浩瀚海洋中,我們深耕近二十年,積累了豐富的EMC(電磁兼容)技術(shù)經(jīng)驗(yàn)及培訓(xùn)經(jīng)驗(yàn)。此刻,這份深厚積累匯成知識(shí)
    的頭像 發(fā)表于 10-11 08:03 ?1846次閱讀
    賽盛EMC<b class='flag-5'>在線</b><b class='flag-5'>學(xué)習(xí)</b>平臺(tái):揭秘<b class='flag-5'>學(xué)習(xí)</b>寶典&amp;amp;工具秘籍!

    Verilog testbench問題求助

    這是我在HDLbits網(wǎng)站上做到的一道題,是testbench,請(qǐng)問這個(gè)代碼為什么input都是低電平0?我設(shè)置的時(shí)鐘就是周期10ns,占空比50%的時(shí)鐘信號(hào)啊?怎么會(huì)出現(xiàn)這種情況......
    發(fā)表于 07-21 11:14