91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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è)計(jì)工程師的血淚史。

命名規(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

計(jì)數(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)系本站處理。 舉報投訴
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2315

    瀏覽量

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

    關(guān)注

    0

    文章

    33

    瀏覽量

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

    關(guān)注

    0

    文章

    113

    瀏覽量

    8790

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    verilog 代碼規(guī)范

    verilog規(guī)范設(shè)計(jì)--狀態(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

    關(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è)計(jì)的模塊。
    發(fā)表于 12-08 14:36

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

    “國際標(biāo)準(zhǔn)”級別的Verilog或VHDL代碼書寫規(guī)范可供參考,但是相信每個稍微規(guī)范點(diǎn)的做FPGA設(shè)計(jì)的公司都會為自己的團(tuán)隊(duì)制定
    發(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è)計(jì)的公司都會為自己的團(tuán)隊(duì)制定套供參考的
    發(fā)表于 04-16 04:08

    Verilog代碼書寫規(guī)范

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

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

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

    verilog代碼規(guī)范

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

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

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

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

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

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

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

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

    Verilog規(guī)范對于個好的IC設(shè)計(jì)至關(guān)重要。
    的頭像 發(fā)表于 08-17 10:14 ?2627次閱讀
    IC設(shè)計(jì)之<b class='flag-5'>Verilog</b><b class='flag-5'>代碼</b><b class='flag-5'>規(guī)范</b>