哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

科普一下Verilog代碼命名規(guī)范

FPGA之家 ? 來源:硅農(nóng) ? 作者:硅農(nóng) ? 2022-11-17 09:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

代碼規(guī)范的文檔,就是一份設計工程師的血淚史。

命名規(guī)范

命名規(guī)范包括模塊命名規(guī)范和代碼命名規(guī)范,代碼命名需要有確定的含義,提高代碼可讀性和可維護性。模塊名命名規(guī)范處理好認,一眼就能把看出你是哪個IP里面的一個子模塊之外,更重要的一個原因是防止兩個module重名 ,比如你把模塊起名叫,shift_reg_dly_module,但是整個soc中可能會有其他IP也叫這個module名,這樣同名不同工的文件,會影響集成級的工作。

所以代碼規(guī)范module命名這樣,子系統(tǒng)_子模塊_function_module。例如ddr_shift_reg_dly_module。避免模塊名重名。

綜合自動插時鐘門控

并不是所有的寄存器都需要帶復位,這樣規(guī)范顛覆初入行的朋友認知。有研究表明,帶復位的寄存器和不帶復位的寄存器相比,面積會相差10%。但是這樣也有一個原則,就是控制寄存器必須帶復位,數(shù)據(jù)寄存器可以不復位,但是不能用去做條件。

61f7bf94-6607-11ed-8abf-dac502259ad0.png

計數(shù)器,必須有使能端和清零端,不允許裸奔

always @(posedge clk or negedge rst_n)begin
  if(rst_n == 1'b0)begin
    o_cnt[7:0] <= 8’d0;
  end
  else if(cnt_clr == 1’b1)begin
    o_cnt[7:0] <= 8’d0;
  end
  else if (cnt_en == 1’b1)begin
    o_cnt[7:0] <= o_cnt[7:0] + 1'b1;
  end
end

數(shù)據(jù)寄存器帶使能打拍鎖存使用

always @(posedge clk)begin
  if(data_vld)
    dout[63:0] <= din;
end

這種寫法綜合自動插時鐘門控,而且不帶復位。注意不能裸奔。

always @(posedge clk)begin
    dout[63:0] <= din;
end

這樣寫就GG了

優(yōu)先使用spram

有一種代碼規(guī)范是要求必須使用spram,single port ram。即使有同時讀寫的需求,也自己做邏輯,將讀寫分開做。強烈這么要求的原因是,有研究數(shù)據(jù)表明,在某工藝下,spram比dpram的面積基本會小30%。

30%的memory收益,這個收益還是很猛的。

memory規(guī)范操作

Memory必須先寫后讀,讀寫使能默認復位值必須是無效值。不用的時候不允許讀,否則會出現(xiàn)上電后芯片的memory一直掃描讀寫,徒增功耗。

Memory的數(shù)據(jù)讀出必須鎖存后使用。

memory和logic分開

Memory不散在邏輯中,將memory的讀寫控制端口都從IP的頂層伸出統(tǒng)一管理,為的是mem方便統(tǒng)一替換處理。而且后端實現(xiàn)上memory放邊擺開。

方便不同工藝的適配,比如你要換一個工藝,那你的memory要全部替換,就要在logic里面找,假如有些工藝十分惡心,要加個寄存器或者輸出到寄存器上,你就要一層層穿線到頂層寄存器模塊。作為IP供應商也應該做好memory的wrapper提供給客戶,方便客戶替換。

后端實現(xiàn)memory放邊擺開,logic要也考慮到memory的走線,所以對于memory的入口和出口都要是寄存器。不然PR出了問題,該做的還是得做。

模塊必須寄存器入寄存器出

在后端布局布線過程中,邏輯少的模塊之間還好,但harden之間有邏輯交互,兩個harden的距離并不一定擺的位置靠近。如果不是寄存器入寄存器出,會導致兩個harden之間交互的信號時序差。造成工作反復。

自研IP不建議用`define來定義參數(shù)

要求用parameter,define使用要謹慎,因為define是全局定義的,如果再使用過程中不當,沒有undef掉,可能會影響其他IP的同名define值。正確使用沒問題,無對錯,遵守公司代碼規(guī)范即可 。







審核編輯:劉清

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

原文標題:那些年我不理解的Verilog代碼規(guī)范,現(xiàn)在終于悟了

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    verilog 代碼規(guī)范

    verilog規(guī)范設計--狀態(tài)機)//always中,定要用 begin end 區(qū)分,格式和代碼風格統(tǒng)如下always @(pose
    發(fā)表于 03-09 20:22

    【分享】verilog代碼書寫規(guī)范

    FPGA verilog代碼書寫規(guī)范,很好的借鑒
    發(fā)表于 05-21 11:36

    關于Android命名規(guī)范

    名方法名都以lowerCamelCase風格編寫,小駝峰式命名法,即首字母小寫,其他單詞都是首字母大寫。最后這些都是最簡單不過,稍微注意一下就可以了,習慣的養(yǎng)成真的很重要,畢竟開發(fā)不是僅你個人,
    發(fā)表于 10-15 00:11

    Verilog HDL代碼書寫規(guī)范

    Verilog HDL代碼書寫規(guī)范
    發(fā)表于 09-30 08:55

    Verilog HDL代碼書寫規(guī)范

    等。本規(guī)范適用于Verilog model的任何級(RTL, behavioral, gate_level),也適用于出于仿真、綜合或二者結合的目的而設計的模塊。
    發(fā)表于 12-08 14:36

    勇敢的芯伴你玩轉Altera FPGA連載34:Verilog代碼書寫規(guī)范

    “國際標準”級別的Verilog或VHDL代碼書寫規(guī)范可供參考,但是相信每個稍微規(guī)范點的做FPGA設計的公司都會為自己的團隊制定
    發(fā)表于 12-27 09:41

    關于Android命名規(guī)范

    首字母大寫。方法名 方法名都以lowerCamelCase風格編寫,小駝峰式命名法,即首字母小寫,其他單詞都是首字母大寫。最后這些都是最簡單不過,稍微注意一下就可以了,習慣的養(yǎng)成真的很重要,畢竟開發(fā)不是僅你
    發(fā)表于 06-21 09:35

    FPGA的代碼書寫規(guī)范

    VHDL代碼書寫規(guī)范可供參考,但是相信每個稍微規(guī)范點的做FPGA設計的公司都會為自己的團隊制定套供參考的
    發(fā)表于 04-16 04:08

    Verilog代碼書寫規(guī)范

    Verilog代碼書寫規(guī)范規(guī)范的目的是提高書寫代碼的可讀性、可修改性、可重用性,優(yōu)化代碼
    發(fā)表于 04-15 09:47 ?106次下載

    Verilog代碼命名六大黃金規(guī)則

    電子發(fā)燒友網(wǎng)核心提示: 關于Verilog代碼命名的六大黃金規(guī)則。 1. 系統(tǒng)級信號的命名。 系統(tǒng)級信號指復位信號,置位信號,時鐘信號等需要輸送到各個模塊的全局信號;系統(tǒng)信號以字
    發(fā)表于 09-04 14:40 ?6661次閱讀

    verilog代碼規(guī)范

    verilog代碼規(guī)范,學會寫代碼還不行,我們需要更加的規(guī)范。
    發(fā)表于 03-25 14:43 ?25次下載

    華為_VERILOG語言編寫規(guī)范

    verilog代碼規(guī)范,學會寫代碼還不行,我們需要更加的規(guī)范
    發(fā)表于 03-25 14:36 ?35次下載

    簡單介紹一下-Verilog-AMS的基礎知識

    -Verilog-AMS,今天就簡單介紹一下-Verilog-AMS。 為了便于物理系統(tǒng)的建模,人們在Verilog-2005的基礎上,添加了
    的頭像 發(fā)表于 10-21 14:50 ?1.1w次閱讀
    簡單介紹<b class='flag-5'>一下</b>-<b class='flag-5'>Verilog</b>-AMS的基礎知識

    FPGA的Verilog代碼編寫規(guī)范

      注:以R起頭的是對編寫Verilog代碼的IP設計者所做的強制性規(guī)定,以G起頭的條款是建議采用的規(guī)范。每個設計者遵守本規(guī)范可鍛煉命名
    的頭像 發(fā)表于 08-15 16:23 ?3761次閱讀

    IC設計之Verilog代碼規(guī)范

    Verilog規(guī)范對于個好的IC設計至關重要。
    的頭像 發(fā)表于 08-17 10:14 ?2739次閱讀
    IC設計之<b class='flag-5'>Verilog</b><b class='flag-5'>代碼</b><b class='flag-5'>規(guī)范</b>
    宕昌县| 新民市| 申扎县| 舟山市| 凯里市| 宁远县| 梁山县| 额济纳旗| 含山县| 乾安县| 永清县| 和田市| 渝中区| 慈利县| 海盐县| 保亭| 简阳市| 芦溪县| 新巴尔虎右旗| 个旧市| 韶山市| 石楼县| 江川县| 莲花县| 陇西县| 宁阳县| 花莲县| 驻马店市| 巴彦县| 元阳县| 五莲县| 格尔木市| 南郑县| 青浦区| 蓬安县| 萝北县| 锦屏县| 大洼县| 禹州市| 清原| 绥棱县|