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

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

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

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

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

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-08-31 09:06 ? 次閱讀

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 15-Vector3

題目說明

模塊 32 位輸入向量如下所示,按照上下對(duì)應(yīng)關(guān)系,輸出為下方的 4 個(gè) 8-bits 向量。

8f00616e-28c5-11ed-ba43-dac502259ad0.png 圖片來自 HDLBits

這個(gè)題目的核心就是上面的圖片,將上面的輸入向量映射到下面向量。

模塊端口聲明

moduletop_module(
input[4:0]a,b,c,d,e,f,
output[7:0]w,x,y,z);

題目解析

這個(gè)題目重點(diǎn)是向量拼接,拼接操作符的基本語法使用 { } 將較小的向量括起來,每個(gè) { } 內(nèi)的向量使用逗號(hào)作為間隔。

{3'b111,3'b000}=>6'b111000
{1'b1,1'b0,3'b101}=>5'b10101
{4'ha,4'd10}=>8'b10101010//4'haand4'd10areboth4'b1010inbinary

拼接運(yùn)算符中的向量務(wù)必需要標(biāo)注位寬,不然綜合器怎么能知道你的結(jié)果需要多寬的位寬。因此 { 1,2,3 } 這樣的操作是非法的,并會(huì)產(chǎn)生一個(gè) Error:unsized constants are not allowed in concatenations.

moduletop_module(
inputlogic[4:0]a,b,c,d,e,f,
outputlogic[7:0]w,x,y,z
);//


assignw={a,b[4:2]};
assignx={b[1:0],c,d[4]};
assigny={d[3:0],e[4:1]};
assignz={e[0],f,2'b11};
endmodule

8f13761e-28c5-11ed-ba43-dac502259ad0.png

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

8f361228-28c5-11ed-ba43-dac502259ad0.png

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

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

Problem 16-Vectorr

題目說明

給定一個(gè) 8bit 輸入向量,將其反向輸出。

模塊端口聲明

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

題目解析

這道題難度不大但是不要想著使用assign out[7:0] = in[0:7];解決問題,因?yàn)樵赩erilog中這個(gè)語句不起作用,因?yàn)閂erilog使用向量時(shí)的位序應(yīng)與定義時(shí)保持一致。

簡單解決就是將輸入按照一個(gè)一個(gè)bit分開,然后重新組合即可。

但是如果向量是1024位呢?大家可以思考,后續(xù)還有類似問題,再使用其他方式解決,下面有參考示例。

簡單解答

moduletop_module(
inputlogic[7:0]in,
outputlogic[7:0]out
);

assignout={in[0],in[1],in[2],in[3],in[4],in[5],in[6],in[7]};

endmodule


其他方式解決

moduletop_module(
inputlogic[7:0]in,
outputlogic[7:0]out
);
parametercount='d8;

varintegeri;

always_combbegin
for(i=0;i
8f4ff9e0-28c5-11ed-ba43-dac502259ad0.png8f741906-28c5-11ed-ba43-dac502259ad0.png

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

8f97732e-28c5-11ed-ba43-dac502259ad0.png

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

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

Problem 17-Vector4

題目說明

將一個(gè) 8bit 有符號(hào)數(shù)擴(kuò)展為 32bit 數(shù)。

模塊端口聲明

moduletop_module(
input[7:0]in,
output[31:0]out);

題目解析

本題考查的是向量的復(fù)制和拼接語法:{ 重復(fù)次數(shù) { 向量 } }。

重復(fù)次數(shù)必須是一個(gè)常量,而且請(qǐng)?zhí)貏e注意重復(fù)操作符有兩對(duì) { }.外層的 {} 不能少。

如:

{5{1'b1}}//5'b11111(or5'd31or5'h1f)
{2{a,b,c}}//Thesameas{a,b,c,a,b,c}
{3'd5,{2{3'd6}}}//9'b101_110_110.It'saconcatenationof101with
//thesecondvector,whichistwocopiesof3'b110.

還需要注意有符號(hào)和無符號(hào)的復(fù)制:

重復(fù)操作符的應(yīng)用場(chǎng)景之一是在有符號(hào)數(shù)的擴(kuò)展。有符號(hào)數(shù)的擴(kuò)展是將符號(hào)位填充待擴(kuò)展的比特。比如要將 4bit 的 4'b0101 有符號(hào)數(shù)擴(kuò)展為 8bit ,0 是符號(hào)位,那么擴(kuò)展之后為 8'b0000 0101.

moduletop_module(
inputlogic[7:0]in,
outputlogic[31:0]out
);//


assignout={{24{in[7]}},in};

endmodule

8fb88bf4-28c5-11ed-ba43-dac502259ad0.png

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

8fd586aa-28c5-11ed-ba43-dac502259ad0.png

注意圖中是沒有波形的~

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

Problem 18-Vector5

題目說明

給定五個(gè) 1 位信號(hào)(a、b、c、d 和 e),計(jì)算 25 位輸出向量中的所有 25 個(gè)成對(duì)的邏輯比較。如果被比較的兩位相等,則輸出應(yīng)為 1。

8ff7e70e-28c5-11ed-ba43-dac502259ad0.png 圖片來自 HDLBits

問題的核心就是上面的圖片,相關(guān)操作如下:

out[24]=~a^a;//a==a,soout[24]isalways1.
out[23]=~a^b;
out[22]=~a^c;
...
out[1]=~e^d;
out[0]=~e^e;

模塊端口聲明

moduletop_module(
inputa,b,c,d,e,
output[24:0]out);

題目解析

這個(gè)題目還是上一題的延續(xù),屬于將幾個(gè)知識(shí)點(diǎn)串聯(lián)起來,向量復(fù)制擴(kuò)展,XNOR操作,前面知識(shí)掌握了這個(gè)題目就不難了。

moduletop_module(
inputa,b,c,d,e,
output[24:0]out);//

//TheoutputisXNORoftwovectorscreatedby
//concatenatingandreplicatingthefiveinputs.
//assignout=~{...}^{...};
assignout=~{{5{a}},{5{b}},{5{c}},{5a5mgapgs4i},{5{e}}}^{5{a,b,c,d,e}};


endmodule


900ec708-28c5-11ed-ba43-dac502259ad0.png

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

902fb8be-28c5-11ed-ba43-dac502259ad0.png

注意圖中無波形~

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

總結(jié)

今天的幾道題就結(jié)束了,整體難度不大,后面的題目難度會(huì)越來越大~

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

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

    關(guān)注

    6673

    文章

    2453

    瀏覽量

    204350
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3328

    瀏覽量

    66218
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110095

原文標(biāo)題:HDLBits: 在線學(xué)習(xí) SystemVerilog(四)-Problem 15-18

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    在實(shí)例化模塊時(shí),使用Verilog時(shí)有兩種常用的方式來進(jìn)行模塊端口的信號(hào)連接:按端口順序以及按端口名稱連接端口。
    的頭像 發(fā)表于 09-08 09:04 ?1605次閱讀

    verilog硬件描述語言課程講義

    verilog硬件描述語言課程講義
    發(fā)表于 08-06 11:35

    Verilog HDL硬件描述語言

    Verilog HDL硬件描述語言
    發(fā)表于 01-13 14:40

    Verilog_HDL硬件描述語言

    Verilog_HDL硬件描述語言 FPGA的資料
    發(fā)表于 02-26 14:03

    Verilog硬件描述語言描述.

    本書簡要介紹了Verilog硬件描述語言的基礎(chǔ)知識(shí),包括語言的基本內(nèi)容和基本結(jié)構(gòu) ,以及利用該語言在各種層次上對(duì)
    發(fā)表于 03-27 23:44 ?101次下載

    VERILOG HDL硬件描述語言

    本書簡要介紹了Verilog硬件描述語言的基礎(chǔ)知識(shí),包括語言的基本內(nèi)容和基本結(jié)構(gòu) ,以及利用該語言在各種層次上對(duì)
    發(fā)表于 07-20 11:36 ?0次下載

    Verilog HDL硬件描述語言【書籍

    本書簡要介紹了Verilog 硬件描述語言的基礎(chǔ)知識(shí),包括語言的基本內(nèi)容和基本結(jié)構(gòu),以及利用該語言在各種層次上對(duì)
    發(fā)表于 07-02 14:55 ?124次下載

    verilog硬件描述語言課程講義

    verilog硬件描述語言課程講義
    發(fā)表于 05-21 15:01 ?33次下載
    <b class='flag-5'>verilog</b><b class='flag-5'>硬件</b><b class='flag-5'>描述語言</b>課程講義

    Verilog硬件描述語言參考手冊(cè)

    Verilog硬件描述語言參考手冊(cè),Verilog語法內(nèi)容介紹
    發(fā)表于 11-12 17:20 ?0次下載

    Verilog HDL硬件描述語言

    Verilog HDL硬件描述語言 有需要的下來看看
    發(fā)表于 12-29 15:31 ?0次下載

    Verilog硬件描述語言

    VHDL語言編程學(xué)習(xí)Verilog硬件描述語言
    發(fā)表于 09-01 15:27 ?0次下載

    Verilog HDL硬件描述語言

    Verilog HDL硬件描述語言,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-11 11:20 ?11次下載

    基于Verilog硬件描述語言的IEEE標(biāo)準(zhǔn)硬件描述語言資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是基于Verilog硬件描述語言的IEEE標(biāo)準(zhǔn)硬件描述語言資料合集免費(fèi)下載:1995、2001、2005;
    發(fā)表于 06-18 08:00 ?10次下載

    Verilog硬件描述語言的學(xué)習(xí)課件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是Verilog硬件描述語言的學(xué)習(xí)課件免費(fèi)下載。
    發(fā)表于 01-22 12:13 ?17次下載
    <b class='flag-5'>Verilog</b><b class='flag-5'>硬件</b><b class='flag-5'>描述語言</b>的學(xué)習(xí)課件免費(fèi)下載

    Verilog硬件描述語言參考手冊(cè)免費(fèi)下載

    Verilog 硬件描述語言參考手冊(cè)是根據(jù)IEEE 的標(biāo)準(zhǔn)“Verilog 硬件描述語言參考手
    發(fā)表于 02-05 16:24 ?73次下載
    <b class='flag-5'>Verilog</b><b class='flag-5'>硬件</b><b class='flag-5'>描述語言</b>參考手冊(cè)免費(fèi)下載
    主站蜘蛛池模板: ww7788色淫网站女女免费| 免费你懂的| 精品国产三级在线观看| 五月天综合婷婷| 激情五月俺来也| 38pao强力打造永久免费高清视频| 日本一区高清视频| 一级毛片q片| 欧美大片一区| 天天操国产| 欧美aaaaa| 美女黄页免费| 成年网站在线| 3344a毛片在线看| 性色在线视频精品| 欧美日韩国产一区二区| 五月天婷婷综合| 一区二区三区四区无限乱码在线观看 | 国产成人影院| 一二三四日本视频社区| 国产亚洲精品仙踪林在线播放| 国产精品免费看久久久久| 热re99久久精品国99热| 你懂得在线播放| 久久精品国产99精品国产2021| 亚洲最大色网站| www.伊人网| 中文字幕av一区二区三区| 人与牲动交xxxxbbbb| 手机看片国产免费| 亚洲综合一二三区| 免看一级a一片成人123| 久操中文| 四虎影院大全| 爱爱永久免费视频网站| 在线观看免费精品国产| 毛片大全免费| 五月天色丁香| 欧美色视频网| 97涩涩涩| 欧美性色黄在线视|