RM新时代网站-首页

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

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

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

用硬件思維去理解verilog

電子工程師 ? 來源:未知 ? 作者:李倩 ? 2018-08-31 16:49 ? 次閱讀

· 基本硬件設(shè)計模式 ·

讀者如果學習了verilog,并且有了一定的實踐經(jīng)驗的話應該強烈的感受到,verilog和軟件(諸如C/C++)有著本質(zhì)且明顯的差別,是一條不可跨越的鴻溝。所以初學者把C和verilog拿來作比較是完全沒用的,甚至會把初學者繞暈,影響學習效率的提高。

雖然verilog比硬件更抽象,但是最終實現(xiàn)的結(jié)果就是一堆硬件電路。所以評價一個verilog代碼的好壞不是看代碼量多少,而是看最終實現(xiàn)的功能和性能(有速度和面積2方面)。假設(shè)面積為S,性能為V,定義品質(zhì)數(shù)Q=S/V,Q越小,設(shè)計的電路越成功。

評價一個設(shè)計者代碼水平較高,只是這個設(shè)計由硬件向verilog表現(xiàn)形式轉(zhuǎn)換更流暢,合理。一個設(shè)計最終實現(xiàn)的性能,很大程度上取決于設(shè)計的硬件方案是否高效合理。這是兩回事。

也因上述2點,verilog設(shè)計不刻意追求代碼簡潔,合理的設(shè)計方法是首先理解要設(shè)計的電路,也就是把需求轉(zhuǎn)化為數(shù)字電路,對此電路的結(jié)構(gòu)和連接十分清晰,然后再用verilog表達出這段電路。也就是說,verilog只是簡化了電路設(shè)計的工作量,本質(zhì)上就是設(shè)計數(shù)字電路,永遠繞不開電路這點!這也決定了不能憑空去想代碼,因為只有存在的電路才是可實現(xiàn)的,而存在的代碼未必可以變成存在的電路。

大家也應該知道,在沒有verilog這種高級語言之前都是用原理圖設(shè)計,必須先構(gòu)思好整個電路框架,才能去實現(xiàn)。有了verilog以后這種思路并沒有被拋棄,依然需要大家去思考電路結(jié)構(gòu),只有深入理解了電路本身,才能夠有高效的設(shè)計。

· 實例說明 ·

世界上沒有工作2次就自動停下的觸發(fā)器,所以下面的電路綜合是無法實現(xiàn)的。

repeat(2)@(posedge clk)

d <=x;

雖然上述語法很正確,沒有毛病,但是是不現(xiàn)實的,現(xiàn)在的技術(shù)或者提供的語言還沒有抽象到符合語法的都能直接綜合成電路,他比較生硬,沒有大家想的那么靈活。

至此可以得出一個基本結(jié)論,面向硬件的設(shè)計模式,就是要從電路特征和行為來編寫代碼。

例如上面的電路,要實現(xiàn)觸發(fā)器只工作2次就停止怎么辦呢?這個電路是存在的,只是不存在工作2次就自動停下的觸發(fā)器,所以控制觸發(fā)器運行2次后關(guān)閉使能就可以了。按照這個思路,原理圖如下:

上圖觸發(fā)器輸入數(shù)據(jù)x,輸出數(shù)據(jù)d,觸發(fā)器和計數(shù)器使能端由比較器控制,計數(shù)到2的時候,計數(shù)器和觸發(fā)器都不使能,這樣觸發(fā)器就只工作了2次。也可以認為是一個簡單的狀態(tài)機,計數(shù)器就是狀態(tài)控制。具體代碼請讀者思考,首先用上圖思路,再用三段式狀態(tài)機思路,建議二者都寫出來,好好比較綜合后的RTL圖,并且仿真確保結(jié)果正確。

看此文之前請千萬很熟悉verilog語法,能區(qū)分可綜合,不可綜合語句。

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

    關(guān)注

    11

    文章

    3312

    瀏覽量

    66200
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110074
  • 數(shù)字電路
    +關(guān)注

    關(guān)注

    193

    文章

    1605

    瀏覽量

    80578

原文標題:面向硬件的設(shè)計思維——基本設(shè)計模式

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

收藏 人收藏

    評論

    相關(guān)推薦

    verilog硬件描述語言課程講義

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

    Verilog硬件描述語言參考手冊

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

    Verilog HDL硬件描述語言_建模實例

    本章給出了一些Verilog HDL編寫的硬件建模實例。verilog相關(guān)教程材料,有興趣的同學可以下載學習
    發(fā)表于 04-25 16:09 ?25次下載

    Verilog硬件描述語言

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

    verilog代碼要有硬件的概念

    因為Verilog是一種硬件描述語言,所以在寫Verilog語言時,首先要有所要寫的module在硬件上如何實現(xiàn)的概念,而不是去想編譯器如何
    發(fā)表于 02-11 16:18 ?2873次閱讀
    寫<b class='flag-5'>verilog</b>代碼要有<b class='flag-5'>硬件</b>的概念

    FPGA之硬件語法篇:Verilog關(guān)鍵問題解惑

    數(shù)字電路中學到的邏輯電路功能,使用硬件描述語言(Verilog/VHDL)描述出來,這需要設(shè)計人員能夠用硬件編程思維來編寫代碼,以及擁有扎實的數(shù)字電路功底。
    的頭像 發(fā)表于 12-05 07:11 ?1741次閱讀
    FPGA之<b class='flag-5'>硬件</b>語法篇:<b class='flag-5'>Verilog</b>關(guān)鍵問題解惑

    FPGA之硬件語法篇:Verilog代碼仿真與驗證數(shù)字硬件電路

    數(shù)字電路中學到的邏輯電路功能,使用硬件描述語言(Verilog/VHDL)描述出來,這需要設(shè)計人員能夠用硬件編程思維來編寫代碼,以及擁有扎實的數(shù)字電路功底。
    的頭像 發(fā)表于 12-05 07:10 ?3340次閱讀
    FPGA之<b class='flag-5'>硬件</b>語法篇:<b class='flag-5'>用</b><b class='flag-5'>Verilog</b>代碼仿真與驗證數(shù)字<b class='flag-5'>硬件</b>電路

    快速理解Verilog語言

    Verilog HDL簡稱Verilog,它是使用最廣泛的硬件描述語言。
    的頭像 發(fā)表于 03-22 17:29 ?5038次閱讀

    如何使用Verilog HDL描述可綜合電路?

    1、如何使用Verilog HDL描述可綜合電路 Verilog 有什么奇技淫巧?我想最重要的是理解硬件特性。Verilog HDL語言僅
    的頭像 發(fā)表于 04-04 11:19 ?4207次閱讀
    如何使用<b class='flag-5'>Verilog</b> HDL描述可綜合電路?

    如何通過仿真器理解Verilog語言的思路

    要想深入理解Verilog就必須正視Verilog語言同時具備硬件特性和軟件特性。
    的頭像 發(fā)表于 07-07 09:54 ?1473次閱讀

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

    HDLBits 是一組小型電路設(shè)計習題集,使用 Verilog/SystemVerilog 硬件描述語言 (HDL) 練習數(shù)字硬件設(shè)計~
    的頭像 發(fā)表于 08-31 09:06 ?1690次閱讀

    Verilog HDL高級數(shù)字設(shè)計

    第一句話是:還沒學數(shù)電的先學數(shù)電。然后你可以選擇verilog或者VHDL,有C語言基礎(chǔ)的,建議選擇VHDL。因為verilog太像C了,很容易混淆,最后你會發(fā)現(xiàn),你花了大量時間區(qū)分這兩種語言,而
    的頭像 發(fā)表于 11-03 09:02 ?3756次閱讀

    從仿真器的角度理解Verilog語言1

    要想深入理解Verilog就必須正視Verilog語言同時具備硬件特性和軟件特性。在當下的教學過程中,教師和教材都過于強調(diào)Verilog語言
    的頭像 發(fā)表于 05-25 15:10 ?911次閱讀
    從仿真器的角度<b class='flag-5'>理解</b><b class='flag-5'>Verilog</b>語言1

    從仿真器的角度理解Verilog語言2

    要想深入理解Verilog就必須正視Verilog語言同時具備硬件特性和軟件特性。在當下的教學過程中,教師和教材都過于強調(diào)Verilog語言
    的頭像 發(fā)表于 05-25 15:10 ?837次閱讀
    從仿真器的角度<b class='flag-5'>理解</b><b class='flag-5'>Verilog</b>語言2

    verilog語言面向硬件設(shè)計的思維

    讀者如果學習了verilog,并且有了一定的實踐經(jīng)驗的話應該強烈的感受到,verilog和軟件(諸如C/C++)有著本質(zhì)且明顯的差別,是一條不可跨越的鴻溝。
    的頭像 發(fā)表于 06-28 10:44 ?633次閱讀
    <b class='flag-5'>verilog</b>語言面向<b class='flag-5'>硬件</b>設(shè)計的<b class='flag-5'>思維</b>
    RM新时代网站-首页