<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

講一講芯片設計中的verilog是什么

冬至子 ? 來源:偉醬的芯片后端之路 ? 作者:偉醬的芯片后端之 ? 2023-12-04 13:52 ? 次閱讀

相信不少人都聽過verilog這個詞,今天我就想講一講我所理解的verilog是什么。

Verilog是一種硬件描述語言,它最基本的功能,就是把一份電路圖用代碼的形式表示出來,然后讓計算機理解一份代碼所對應的電路。

硬件描述語言有很多,現在主流的基本就是verilog,或者它的升級版systemverilog。之前上學的時候還接觸過VHDL,但現在好像慢慢地沒什么人在用了。

Verilog代碼和C、Java這種計算機編程語言有本質的不同,verilog里基本所有寫出來的東西都會對應實際的電路。

聲明變量的時候如果指定是一個reg,那么這個變量就有寄存數值的功能,可以綜合出來一個實際的寄存器;如果指定是一段wire,那么他就只能傳遞數據,只是表示一條線。

在verilog里寫一個判斷可能就對應了一個mux,寫一個for可能就是把一段電路重復好幾遍(這在電路設計中是不太實用的,for語句也好像只在systemverilog中才支持)。

最能體現電路設計思想的就是always塊了,它可以指定某一個信號在某個值或某個跳變的時候執行塊里的代碼。

總之,前端工程師寫verilog代碼的目的,就是要對應出一個實際的電路出來,這個電路會完成我們期望的邏輯功能。

但是,人類寫出來的verilog代碼是高度抽象的,一般人甚至編碼者自己也很難把一段verilog代碼和實際的電路聯系起來。

編碼者在編寫的時候更多的是關心信號的邏輯功能有沒有錯誤,我們會看每一個關鍵信號的波形,確保輸入輸出一切正常。

至于哪里用了一個三輸入與門或者兩個二輸入與門我們不會去關心。一般就把這些人類寫出來的很抽象的代碼叫做verilog RTL代碼,RTL是register transition level。

RTL代碼要翻譯給機器看懂,還要經過synthesis(綜合)這一步。這一步是tool完成的,它表示就把RTL變成最基本的邏輯門連接的形式,還是以verilog的格式寫出來,一般我們就稱綜合后的verilog為網表文件,或者叫netlist。

綜合的時候已經要開始考慮芯片PPA的性能了,要知道,一段邏輯相同的電路,可能有很多種實現方式。

比如說一個邏輯表達式可以寫成與非的形式,也能寫成或非形式,對應的電路可能就是與非門或者或非門。

而對于同一種電路,選用的cell可能也不一樣,同樣是一顆buffer,要選驅動能力多大的、開啟電壓選多大的等等也有很多講究。

后端在拿到netlist就可以布局布線了,我們后端在做的時候netlist也不是會一成不變的,我們會在確保邏輯功能不變的前提下對netlist進行改動。

但是,改動之后必須要和改動前的netlist對比檢查,確保沒有改它的邏輯才行。

這一步有時候我們就會稱為formal檢查,formality就是一個可以用來做這種檢查的工具,synopsys家的。實際上,前端在綜合前后也會做類似的檢查。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    30

    文章

    5164

    瀏覽量

    118135
  • 芯片設計
    +關注

    關注

    15

    文章

    937

    瀏覽量

    54477
  • Verilog
    +關注

    關注

    28

    文章

    1328

    瀏覽量

    109466
  • RTL
    RTL
    +關注

    關注

    1

    文章

    382

    瀏覽量

    59187
收藏 人收藏

    評論

    相關推薦

    數采達人第一講

    中科泛華教程,數采達人系列第一講。要是資料對大家有幫助的話,就發余下的幾講出來,如果沒什么幫助,那就算了。
    發表于 09-13 09:02

    論壇組織FPGA講座,看看你希望那些方面的內容

    筒子們,福利來了,熱心網友@mallon_ml 愿意為大家做關于FPGA的講座了。講座時間:第一講預定為本周六晚上講座方式:為了照顧到大家都在不同的地方,講座會以下幾種方式:QQ群視頻或YY語音或
    發表于 04-07 22:56

    高手支招,告別菜鳥 ——FPGA入門公益學習班全程4精彩...

    如下:第一講:FPGA的發展背景與基礎知識FPGA的典型應用及解決方案FPGA的設計流程與開發方法第二Verilog基本語法與設計方法Verilog系統設計原則與技巧
    發表于 04-10 10:50

    社團崛起之搞定51單片機(第一講

    3月28日,協會在電子信息與電氣工程學院仿真實驗室開展《社團崛起之搞定51單片機(第一講)》培訓工作。
    發表于 03-29 21:12

    有沒有整本書只個arm實例的,求推薦

    有沒有整本書只個arm實例的,知識點貫穿在個實例,實例的實現的講解特別仔細?,F在的書都是就、都是一講就十幾個幾十個,看到頭,什么也沒
    發表于 01-09 16:52

    ISSI公司的sram verilog model使用

    這句話屏蔽,均只能運行200ns,不知道怎么回事,波形圖如圖,estbench代碼也如圖,希望會的朋友可以一講。。。。附件為sram芯片的仿真模型的verilog代碼
    發表于 11-07 13:34

    請大神給我一講DCM和CCM的在實際應用的作用

    本人是個剛剛初學電力電子的研究生,最近看了 fundamental of electronics power 這本書的前五章,看完第五章之后我就有點暈,要說DCM和CCM這兩種模式的含義書上已經的很清楚,但是這兩種模式 到底有什么實際的應用的問題
    發表于 11-18 15:22

    高頻功率磁性材料特性與應用(第一講 +第二)

    高頻功率磁性材料特性與應用(第一講 +第二)
    發表于 05-04 08:49

    Verilog HDL相關應用程序設計實例精講和經典黑金資料(入門教程+實例精+百例設計)

    Verilog HDL應用程序設計實例精v經典黑金資料(入門教程+實例精+百例設計)
    發表于 03-26 14:45

    一講嵌入式技術

    我們知道,要想讓物體“開口”, 即具有通信與計算能力,必須要為其嵌入系統。下面就來講一講嵌入式技術。1. 嵌入式技術的發展過程階段:以可編程控制器系統為核心的研究階段嵌入式系統最初的應用是
    發表于 12-21 08:07

    一講三大運營商的物聯網卡選擇哪個比較合適

    卡是走的公網流量,動態IP的那種好的物聯網卡,而非那種定轉非的垃圾卡。物聯網卡挑選方法可見我上篇文章,這里就不再多。下面主要就講一講三大運營商的物聯網卡選擇哪個比較合適,僅僅代表個人觀點,
    發表于 01-12 06:52

    一講高級定時器的死區時間是怎么算出來的

    ,位DTG[7:0]控制(中文數據手冊可能出現錯誤,應當是DTG)?! 」俜綌祿謨缘恼f明不容易看懂,舉的例子與我的應用場合也不致,我使用的是72MHz的晶振,一講我的死區時間
    發表于 01-12 07:34

    簡單一講PCB Layout的設計要點

    如何進行合理的PCB布板設計呢?簡單一講PCB Layout的設計要點
    發表于 02-22 06:16

    一講在FatFs文件系統下讀取SD卡的該如何做

    1、前言上篇文章我講述了在SDIO模式下讀取SD卡,在文章最后說了需要注意的地方,同時也是裸機下利用SDIO模式的不足,今天給大家一講在FatFs文件系統下讀取SD卡的該如何做,以及相比于裸機下SDIO模式的優勢。2、Fat
    發表于 03-02 07:08

    一講generate的用法

    就適合本例程。下面我們先講一講generate的用法再結合代碼簡單講解下,對于generate其實很好理解,只不過寫出來比較難。generate用法關鍵字generate和endgenerate
    發表于 09-29 15:06
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>