chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

命名規(guī)范

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

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

綜合自動(dòng)插時(shí)鐘門(mén)控

并不是所有的寄存器都需要帶復(fù)位,這樣規(guī)范顛覆初入行的朋友認(rèn)知。有研究表明,帶復(fù)位的寄存器和不帶復(fù)位的寄存器相比,面積會(huì)相差10%。但是這樣也有一個(gè)原則,就是控制寄存器必須帶復(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

這種寫(xiě)法綜合自動(dòng)插時(shí)鐘門(mén)控,而且不帶復(fù)位。注意不能裸奔。

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

這樣寫(xiě)就GG了

優(yōu)先使用spram

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

30%的memory收益,這個(gè)收益還是很猛的。

memory規(guī)范操作

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

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

memory和logic分開(kāi)

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

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

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

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

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

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

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







審核編輯:劉清

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

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(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代碼書(shū)寫(xiě)規(guī)范

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

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

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

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

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

    Verilog HDL代碼書(shū)寫(xiě)規(guī)范

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

    Verilog HDL代碼書(shū)寫(xiě)規(guī)范

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

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

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

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

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

    FPGA的代碼書(shū)寫(xiě)規(guī)范

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

    Verilog代碼書(shū)寫(xiě)規(guī)范

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

    verilog代碼規(guī)范

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

    華為_(kāi)VERILOG語(yǔ)言編寫(xiě)規(guī)范

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

    簡(jiǎn)單介紹一下-Verilog-AMS的基礎(chǔ)知識(shí)

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

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

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

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

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