色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

淺談RTL設計風格及Verilog編碼規范

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2021-06-12 17:20 ? 次閱讀

一、同步設計

1.1 時鐘的同步設計

關注問題:

(1)設計中盡可能使用單時鐘和單時鐘邊沿觸發

(2)不要使用例如“與”“或”門這些基本單元來生成RS鎖存或者FF

(3)不要在組合邏輯中引入反饋電路

在HDL設計中使用同步設計思想以及邏輯綜合工具。使用異步時鐘會讓更加精確的時序約束變得困難,因此,盡可能利用單個時鐘和單邊沿。(使用單個時鐘在多數設計中很難實現,在設計中盡量減少時鐘數量以減輕分析的復雜度)

盡管可以使用基本門來實現RS或FF,但時序分析工具會把它視作對組合電路的反饋,如果無法避免,則需要使用set_disable_timing設置來避免時序分析期間反饋環路的影響。

避免在內部電路生成異步時鐘,如果需要生成這樣的時鐘,那么推薦在生成時鐘的FF輸出端使用create_clock來指定時鐘。

避免反饋跨越異步復位,同樣的,避免使用門控時鐘和門控復位。

二、 復位問題

2.1 使用異步復位作為初始的復位

關注問題:

(1)使用同步復位電路可能會導致綜合器生成無法正確復位的電路,同時,同步復位會在數據路徑引入復位信號(延遲讓時序變得困難),在多時鐘系統中可能需要計數器來保證復位信號寬度。但同步復位并不是完全沒有優點,比如,保證系統是完全同步的,可以濾除掉復位信號的一些小毛刺,同步復位需要更少的觸發器等等,這些問題整理詳細文章討論。

(2)使用異步復位對寄存器進行初始的復位會更加安全

(3)除了復位功能外,復位/置位的引腳不要用作它途

(4)在同一個復位線路上禁止同時使用同步復位和異步復位

(5)一個FF盡量不使用異步復位和異步置位

異步復位示例:

always結構僅會由時鐘上升沿以及低有效的復位信號觸發

always @(posedge CLK or negedge RST_X) if (!RST_X) Q 《= 1‘b0; else Q 《= DATA;

請注意上面表述的是初始復位(Initial reset)推薦使用異步復位。異步復位的時序分析比較困難,因為時序路徑會被切斷,從而沒有考慮到B的復位輸入到寄存器B的輸出Q的時序。同時,A的輸出到B異步復位的的時序也不會被分析。

2.2 復位問題

注意問題:

(1)不要在復位路徑引入邏輯電路

例:

reg[4:0] count; wire REN_X,EN_X,count32_x,ctl_x; assign count32_x = ~(& count) | ctl_x; assign REN_X = EN_X | count32_x; always @( posedge CLK or negedge REN_X ) if(REN_X == 1’b0) Q 《= 1‘b0; else Q 《= D;

當組合邏輯產生復位信號時,由于優化的原因,使能信號可能會和FF分離,并且不排除危險信號驅動復位信號的可能性(FF可能會以意外的時序復位)。如上圖所示,即使在RTL描述中的FF復位信號前插入了使能邏輯,也可能會發生這種情況。并且一旦發生這種問題,很難排查。總而言之,設計電路不要總依賴綜合工具的優化。

2.2.1 噪聲,毛刺

復位信號不排除會被噪聲干擾,產生一些毛刺,因此,推薦使用濾波,但引入濾波也不是必須的,視情況而定。下圖是高有效復位的濾波電路

如果是低有效復位?

濾波波形原理:

2.2.2 亞穩態問題

以低有效異步復位為例,如果復位信號在時鐘沿釋放(或附近),不滿足Recovery Time以及Removal Time,會出現亞穩態,所謂復位恢復時間就是,復位釋放的時間距離時鐘沿(上升沿)的時間,復位移除時間就是,復位釋放的時間距離時鐘沿(上升沿)的時間。和數據建立時間保持時間一樣,都要滿足一定的時序要求。這是需要關注的問題。

2.2.3 同步器/異步復位同步釋放

module async_resetFFstyle2 ( output reg rst_n, input clk, asyncrst_n); reg rff1; always @(posedge clk or negedge asyncrst_n) if (!asyncrst_n) {rst_n,rff1} 《= 2’b0; else {rst_n,rff1} 《= {rff1,1‘b1}; endmodule

外部的復位信號進入推薦使用異步復位同步釋放,下面是代碼綜合出的電路圖,這種設計有它的優勢。

編輯:jq

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

    關注

    3

    文章

    140

    瀏覽量

    109887
  • 代碼
    +關注

    關注

    30

    文章

    4779

    瀏覽量

    68521
  • 同步器
    +關注

    關注

    1

    文章

    98

    瀏覽量

    14629
  • 綜合器
    +關注

    關注

    0

    文章

    10

    瀏覽量

    6446

原文標題:RTL設計風格及Verilog編碼規范(一)

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

收藏 人收藏

    評論

    相關推薦

    Verilog 與 ASIC 設計的關系 Verilog 代碼優化技巧

    Verilog與ASIC設計的關系 Verilog作為一種硬件描述語言(HDL),在ASIC設計中扮演著至關重要的角色。ASIC(Application Specific Integrated
    的頭像 發表于 12-17 09:52 ?91次閱讀

    Verilog 測試平臺設計方法 Verilog FPGA開發指南

    Verilog測試平臺設計方法是Verilog FPGA開發中的重要環節,它用于驗證Verilog設計的正確性和性能。以下是一個詳細的Verilog測試平臺設計方法及
    的頭像 發表于 12-17 09:50 ?119次閱讀

    Verilog與VHDL的比較 Verilog HDL編程技巧

    Verilog 與 VHDL 比較 1. 語法和風格 VerilogVerilog 的語法更接近于 C 語言,對于有 C 語言背景的工程師來說,學習曲線較平緩。它支持結構化編程,代
    的頭像 發表于 12-17 09:44 ?112次閱讀

    ADS1281 PCM編碼規范應該在哪里找?

    的是,根據文檔M0是符合PCM編碼的,請問這個PCM編碼規范應該在哪里找?或者它是符合怎么樣的規范。如何解碼 解碼公式1生成的yn也是符合PCM編碼
    發表于 12-05 08:33

    如何自動生成verilog代碼

    介紹幾種自動生成verilog代碼的方法。
    的頭像 發表于 11-05 11:45 ?286次閱讀
    如何自動生成<b class='flag-5'>verilog</b>代碼

    RTL8192CU驅動

    RTL8192CU驅動,支持WINXP/7/10
    發表于 10-29 10:17 ?1次下載

    Verilog 如何做到心中有電路?

    布線布局卡死一直布不到,在寫verilog代碼應該怎么規范寫以減輕布線壓力?我寫了一個工程,但是布線布局一部卡住布不下去,想進一步規范verilog代碼以成功布線,有哪些建議嗎? A:
    發表于 09-26 20:30

    怎么樣提高verilog代碼編寫水平?

    優秀代碼:在網上查找開源的、經過驗證的高質量 Verilog 代碼,學習他人的編程風格、代碼結構和設計思路。 實踐項目:嘗試自己設計和實現一些較為復雜的項目,如復雜的控制器、數據處理模塊等,通過實踐來
    發表于 09-25 20:05

    FPGA Verilog HDL有什么奇技巧?

    的話,仿真波形是z,雖然出結果時不影響,有沒有必要一開始的時候直接reg賦初值?在rtl文件里能不能使用initial賦初值,這樣的rtl代碼能否綜合? A:在 Verilog 中,是否有必要為所有
    發表于 09-12 19:10

    C語言編碼規范,這才是最理想的!

    編碼規范,沒有最好,只有最合適,有但不執行不如沒有。一、編碼原則01可讀性清晰第一清晰性是易于維護程序必須具備的特征。維護期變更代碼的成本遠遠大于開發期,編寫程序應該以人為本,計算機第二。一般情況下
    的頭像 發表于 07-06 08:11 ?816次閱讀
    C語言<b class='flag-5'>編碼</b><b class='flag-5'>規范</b>,這才是最理想的!

    基于樹莓派5的RTL仿真體驗

    :~/workspace/13_rtl_sim/heart_rtl$ iverilog -V Icarus Verilog version 11.0 (stable) () Copyright 1998-2020
    發表于 04-30 17:35

    如何通過優化RTL減少功耗

    對于功耗估算來說,架構階段為時過早,物理設計階段為時已晚。有一種趨勢是在項目的RTL階段分析power hot spots。與后期分析相比,基于 RTL 的功耗分析更快、更容易執行,迭代時間更短。
    的頭像 發表于 04-05 09:15 ?2139次閱讀
    如何通過優化<b class='flag-5'>RTL</b>減少功耗

    8b10b編碼verilog實現

    8b/10b編碼是一種用于減少數據線上的低效能時鐘信號傳輸的技術,通過在數據流中插入特殊的控制字符,來同步數據和時鐘。在Verilog中實現8b/10b編碼器可以通過以下步驟完成: 定義8b/10b
    發表于 03-26 07:55

    verilog function函數的用法

    Verilog 是一種硬件描述語言 (HDL),主要用于描述數字電子電路的行為和結構。在 Verilog 中,函數 (Function) 是一種用于執行特定任務并返回一個值的可重用代碼塊。函數在
    的頭像 發表于 02-22 15:49 ?5521次閱讀

    淺談NFC射頻信號編碼和調制

    NFC在射頻信號上采用兩種不同的編碼系統來傳輸數據。在大多數情況下,使用10%的調制電平,采用曼徹斯特編碼格式。但是,對于以 106 kbps 傳輸數據的有源器件,使用改進的米勒編碼方案,100% 調制。
    發表于 01-12 11:46 ?2262次閱讀
    <b class='flag-5'>淺談</b>NFC射頻信號<b class='flag-5'>編碼</b>和調制
    主站蜘蛛池模板: 免费亚洲视频在线观看| 午夜色网站| 麻豆出品国产AV在线观看| 激情内射亚洲一区二区三区 | 亚洲国产成人精品无码区5566| 日日碰狠狠躁久久躁综合网| 欧美人与动牲交A精品| 女攻男受高h全文肉肉| 美女脱精光让男生桶下面| 久久精品视频在线看99| 久久久96人妻无码精品蜜桃| 久久aa毛片免费播放嗯啊| 久久精品无码一区二区日韩av| 久久99精品国产自在自线| 久久www免费人成高清| 久久99国产亚洲高清观着| 久久亚洲精品无码A片大香大香| 羞羞漫画在线播放| 成年人免费观看视频网站| 国产日韩精品SUV| 在线 中文字幕| jjzz大全| 99婷婷久久精品国产一区二区| 92精品国产成人观看免费| 99久久免热在线观看6| jjzzz日本| 国产www视频| 国产精品无码无卡毛片不卡视| 国产三级在线免费观看| 精品久久久久久久高清| 久久视热频国产这里只有精品23| 麻花豆传媒剧国产免费mv观看| 欧美 亚洲 另类 综合网| 日韩中文网| 亚洲精品九色在线网站| 中文无码在线观| av影音先锋天堂网| 富婆找黑人老外泻火在线播放| 国产午夜一级鲁丝片| 久久精品人人做人人爽97| 欧美日韩视频高清一区|