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
Problem 7-Xnorgate
題目說明
創(chuàng)建一個(gè) XNOR 門的模塊。

這個(gè)題目的核心就是上面的圖片,模塊和端口已經(jīng)被定義好了,黑色的框圖以及箭頭代表模塊和端口。我們需要做的工作是完成圖中綠色的部分,即完成一個(gè)XNOR 門。
模塊端口聲明
moduletop_module(
inputa,
inputb,
outputout);
題目解析
這個(gè)題目重點(diǎn)還是看懂題目的圖片,還是復(fù)習(xí)一下:

題目中的綠色部分就是上圖的同或門,主要由
這里也可以利用數(shù)電邏輯來寫代碼,同或門的邏輯就是同或門 (XNor Gate) 是異或門 (Nor Gate) 的取反輸出。異或門的輸入輸出可以概括為:(輸入)相同(輸出)為 0 ,不同為 1
moduletop_module(
inputlogica,
inputlogicb,
outputlogicout);
assignout=~(a^b);
endmodule

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

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網(wǎng)站會對比這兩個(gè)波形,一旦這兩者不匹配,仿真結(jié)果會變紅(后面會展示)。
這一題就結(jié)束了。
Problem 3-Wire4
題目說明
創(chuàng)建一個(gè)具有 3 個(gè)輸入和 4 個(gè)輸出的模塊,其行為類似于下面演示的這些連線:
a->w
b->x
b->y
c->z

這個(gè)題目的核心就是上面的圖片,模塊和端口已經(jīng)被定義好了,黑色的框圖以及箭頭代表模塊和端口。我們需要做的工作是完成圖中綠色的部分,即完成這條連線。
模塊端口聲明
moduletop_module(
inputa,b,c,
outputw,x,y,z);
題目解析
主要使用assign語句實(shí)現(xiàn)上面的連線,難度較低。
moduletop_module(
inputlogica,b,c,
outputlogicw,x,y,z
);
assignw=a;
assignx=b;
assigny=b;
assignz=c;
endmodule

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

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網(wǎng)站會對比這兩個(gè)波形,一旦這兩者不匹配,仿真結(jié)果會變紅(后面會展示)。
這一題就結(jié)束了。
Problem 4-Notgate
題目說明
創(chuàng)建一個(gè)實(shí)現(xiàn)非門(Notgate)的模塊。

從這個(gè)題目開始實(shí)現(xiàn)幾個(gè)經(jīng)典組合電路,非門的的核心就是上面的圖片,模塊和端口已經(jīng)被定義好了,黑色的框圖以及箭頭代表模塊和端口。我們需要做的工作是完成圖中綠色的部分,實(shí)現(xiàn)一個(gè)非門。
模塊端口聲明
moduletop_module(inputin,outputout);
題目解析
主要使用assign語句實(shí)現(xiàn)非門,也很簡單就一個(gè)語句“assign out = ~in;”。這里注意一個(gè)邏輯取反和逐位取反的區(qū)別。
moduletop_module(inputlogicin,
outputlogicout
);
assignout=~in;
endmodule
上面使用“assign out = ~in ;”和“assign out = !in ;”無區(qū)別,因?yàn)橹挥幸晃蛔兞俊?/p>

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

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網(wǎng)站會對比這兩個(gè)波形,一旦這兩者不匹配,仿真結(jié)果會變紅(后面會展示)。
這一題就結(jié)束了。
Problem 5-Andgate
題目說明
創(chuàng)建一個(gè)與門(Andgate)模塊。。

與門的的核心就是上面的圖片,模塊和端口已經(jīng)被定義好了,黑色的框圖以及箭頭代表模塊和端口。我們需要做的工作是完成圖中綠色的部分,實(shí)現(xiàn)一個(gè)與門。
模塊端口聲明
moduletop_module(
inputa,
inputb,
outputout);
題目解析
主要使用assign語句實(shí)現(xiàn)與門,也很簡單就一個(gè)語句“assign out = a & b;”。值得注意的是 & 和 && 的區(qū)別。
moduletop_module(
inputlogica,
inputlogicb,
outputlogicout);
assignout=a&b;
endmodule

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

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網(wǎng)站會對比這兩個(gè)波形,一旦這兩者不匹配,仿真結(jié)果會變紅(后面會展示)。
這一題就結(jié)束了。
Problem 6-Norgate
題目說明
創(chuàng)建一個(gè)實(shí)現(xiàn) NOR 門的模塊。或非門(Norgate)是一個(gè)輸出反相的或門。用 Verilog 編寫的 NOR 門需要兩個(gè)運(yùn)算符。

或非門的的核心就是上面的圖片,模塊和端口已經(jīng)被定義好了,黑色的框圖以及箭頭代表模塊和端口。我們需要做的工作是完成圖中綠色的部分,實(shí)現(xiàn)一個(gè)或非門。從圖中可以看出就是一個(gè)或門輸出取反,核心就是先實(shí)現(xiàn)一個(gè)或門,之后再輸出端取反即可,可以使用兩個(gè)assign語句或者一個(gè)assign語句實(shí)現(xiàn)。
模塊端口聲明
moduletop_module(
inputa,
inputb,
outputout);
題目解析
這一題的關(guān)鍵是看懂題目給的符號,給大家一個(gè)常用的門電路示意圖:

HDLbits網(wǎng)站上的使用的是國外流行圖形符號一欄,從題目給定的符號,對比上一圖就是典型的或非門,由或門和非門組合實(shí)現(xiàn)。
moduletop_module(
inputlogica,
inputlogicb,
outputlogicout);
assignout=~(a|b);
endmodule
代碼中(a|b)實(shí)現(xiàn)一個(gè)或門,然后取反即可~(a | b)。

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

注意圖中的Ref是參考波形,Yours是你的代碼生成的波形,網(wǎng)站會對比這兩個(gè)波形,一旦這兩者不匹配,仿真結(jié)果會變紅。
錯誤示范
一開始代碼寫錯了,寫成:
moduletop_module(
inputlogica,
inputlogicb,
outputlogicout);
assignout=~a|b;
endmodule
仿真結(jié)果如下:

造成上面結(jié)果的主要原因還是因?yàn)閂erilog/SV中邏輯操作,運(yùn)算符等有優(yōu)先級(和數(shù)學(xué)里的加減乘除乘除一樣),具體優(yōu)先級如下:

所以上面的代碼會優(yōu)先做~a然后在和b或,加上括號解決。
總結(jié)
今天的5道題就結(jié)束了,整體難度不大,后面的題目難度會越來越大~
最后我這邊做題的代碼也是個(gè)人理解使用,有錯誤歡迎大家批評指正,祝大家學(xué)習(xí)愉快~
代碼鏈接:
https://github.com/suisuisi/SystemVerilog/tree/main/SystemVerilogHDLBit
-
模塊
+關(guān)注
關(guān)注
7文章
2816瀏覽量
52487 -
電路設(shè)計(jì)
+關(guān)注
關(guān)注
6727文章
2563瀏覽量
217182
原文標(biāo)題:HDLBits: 在線學(xué)習(xí) SystemVerilog(二)-Problem 7-9
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
破解平壓平模切機(jī)監(jiān)測難題!KMPHM在線監(jiān)測方案大揭秘 #在線監(jiān)測
KM告訴你 人工監(jiān)測VS在線監(jiān)測 誰才是效率王者?#在線監(jiān)測
維信諾亮相2025上海顯示技術(shù)及應(yīng)用創(chuàng)新展
KMPHM在線監(jiān)測系統(tǒng) 讓設(shè)備故障無處遁形#在線監(jiān)測#振動在線監(jiān)測
億緯鋰能亮相2025德國慕尼黑智慧能源展覽會
華為智能光儲產(chǎn)品亮相Intersolar Europe 2025
KMPHM在線監(jiān)測平臺賦能設(shè)備管理升級#在線監(jiān)測#振動監(jiān)測
微氣象在線監(jiān)測裝置氣象環(huán)境實(shí)時(shí)在線監(jiān)測數(shù)據(jù)穩(wěn)定可靠
使用wavevison5軟件時(shí),F(xiàn)PGA中的程序是在線加載的,CY7C68013A中的固件也是在線加載的嗎?
《具身智能機(jī)器人系統(tǒng)》第7-9章閱讀心得之具身智能機(jī)器人與大模型
KMPHM在線監(jiān)測平臺實(shí)現(xiàn)設(shè)備高效管理#在線監(jiān)測#振動監(jiān)測#振動在線監(jiān)測

在線學(xué)習(xí)SystemVerilog-Problem 7-9
評論