更新於 2024/11/04閱讀時間約 3 分鐘

[Verilog] 該不會有Verilog世界裡的leetcode ?? HDLBits !!

想要跨入Verilog的領域時

總是發現好像不像c code一樣有滿滿的資源

對於新手來說必須要先了解甚麼是design甚麼又是testbench

要怎麼在tesebench中產出stimulate及比對最後output的bit ture

可能在很多人想跨入時,發現這個的門檻極高,就直接放棄惹


因此在這邊推薦大家一個很優質的coding練習平臺,

完全免費,由淺入深的題目,讓大家慢慢熟悉整個Verilog的語法

HDLbits

https://hdlbits.01xz.net/wiki/Step_one

大家進入網頁後,

每個章節的內容會列在左手邊,

對於verilog還不熟悉的朋友可以藉由網頁的引導一題一題往下寫,

每章的開頭都會有教學指引,可以看懂說明後搭配例題練習


選好題目後,相關的說明及coding的位置往下滾就會看到了


以上述為例 Step one的題目

Problem Statement中提到

Build a circuit with no inputs and one output. That output should always drive 1 (or logic high).

這題希望作一個沒有輸入的module,但是他有一個output alway 推1

對於ic design中時常用到的一個功能,

寫一個 tie cell的function

這個function只有兩種type , tie 1或tie0

在follow這個hint後可以推出預期的答案


寫完後即可submit,

跑完compile和simulation後就會提供Status以及test case的waveform

如果有Compile error 會於log中告知 大部分都是屬於synthex error



Incorrect怎麼辦?

碰到incorrect最直接的解法就是去查waveform,

利用input去推敲為甚麼我產出的output和reference是不一致的


不過由於平臺中不是每題都有提供solution,

如果有些問題想不到怎麼解的話,

可以來參考出一張嘴 入門找手感系列,

這邊會和大家一起刷題,提供我的解法讓大家參考討論


Digital IC designer 兩大核心缺一不可 Verilog Coding , Design Concept

Verilog像是個工具幫忙作出想要的功能,

但post silicon中功能還要能動,相關的design concept不可少

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.