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

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

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

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

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

FPGA之家 ? 來源:硅農(nóng) ? 作者:硅農(nóng) ? 2022-11-17 09:54 ? 次閱讀

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

命名規(guī)范

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

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

綜合自動插時鐘門控

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

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

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

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

這樣寫就GG了

優(yōu)先使用spram

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

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

memory規(guī)范操作

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

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

memory和logic分開

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

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

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

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

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

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

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







審核編輯:劉清

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

    關(guān)注

    32

    文章

    2284

    瀏覽量

    96038
  • 數(shù)據(jù)寄存器

    關(guān)注

    0

    文章

    33

    瀏覽量

    7968
  • Verilog語言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8484

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

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

收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    verilog 代碼規(guī)范

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

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

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

    FPGA實(shí)戰(zhàn)演練邏輯篇40:代碼書寫規(guī)范

    VHDL代碼書寫規(guī)范可供參考,但是相信每個稍微規(guī)范點(diǎn)的做FPGA設(shè)計的公司都會為自己的團(tuán)隊制定套供參考的
    發(fā)表于 06-23 14:01

    關(guān)于Android命名規(guī)范

    名方法名都以lowerCamelCase風(fēng)格編寫,小駝峰式命名法,即首字母小寫,其他單詞都是首字母大寫。最后這些都是最簡單不過,稍微注意一下就可以了,習(xí)慣的養(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),也適用于出于仿真、綜合或二者結(jié)合的目的而設(shè)計的模塊。
    發(fā)表于 12-08 14:36

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

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

    關(guān)于Android命名規(guī)范

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

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

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

    Verilog代碼書寫規(guī)范

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

    verilog代碼規(guī)范

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

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

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

    簡單介紹一下-Verilog-AMS的基礎(chǔ)知識

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

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

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

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

    Verilog規(guī)范對于個好的IC設(shè)計至關(guān)重要。
    的頭像 發(fā)表于 08-17 10:14 ?1995次閱讀
    IC設(shè)計之<b class='flag-5'>Verilog</b><b class='flag-5'>代碼</b><b class='flag-5'>規(guī)范</b>
    主站蜘蛛池模板: 午夜视频福利在线 | 免费人成在线观看视频播放 | 国产卡1卡2卡三卡网站免费 | 一级毛片aa| 国产成人av在线 | 91av视频免费在线观看 | 国语一级毛片私人影院 | 欧美一区二区三区综合色视频 | 日本高清免费一本视频在线观看 | 毛片快播| 国产xxxx极品bbw视色 | 五月激情综合网 | 天天曰夜夜操 | 黄页网址免费观看18网站 | 日本免费看黄 | 四虎国产精品视频免费看 | 四虎国产成人亚洲精品 | 日本久久综合视频 | 欧美日韩一区在线观看 | 婷婷6月| 午夜精品久久久久久久 | 一区二区三区高清在线 | 国产精品美女免费视频观看 | 免费观看a黄一级视频 | 啪啪影城 | 免费人成在线观看网站 | 日韩亚洲人成在线综合 | 曰韩欧美| ts人妖另类国产 | 免费人成在线观看视频色 | 456亚洲人成影院在线观 | 亚洲福利视频一区 | 欧美成人影院 | 欧美黄视频在线观看 | 天天爽夜夜爽 | 色综合久久久久综合99 | 日本一级成人毛片免费观看 | 天天干夜夜看 | 国产高清在线观看 | 日本高清加勒比 | 久久网综合 |