<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Verilog標準手冊閱讀筆記

      引言

      該文章不適用于Verilog入學

      Verilog標準手冊下載地址:
      Verilog標準手冊

      簡介

      基本元件模塊:邏輯門和用戶定義的原語模塊(UDPs)

      NET:表示電路連線或是總線的網絡

      寄存器:可以作為輸入信號連接到某個具體模塊的輸入口

      模塊中每個initialalways連續賦值assignUDP各種邏輯門結構塊都是并行執行

      代碼編寫標準

      語匯代碼

      目的: 提高可讀性和可維護性

      要求:

      • 每個Verilog源文件中只準編寫一個模塊,每個模塊只能使用一個源文件

      • 源文件的名字應該與內容相關(其實EDA一般都會強制要求模塊名和源文件名相同

      • 每行只寫一個聲明語句或說明,同時需要使用縮進

      • 變量的定義要做到見名知意,且保持統一的命名風格

      • 編寫模塊的接口注釋,指明接口的格式和功能

      • 減少硬編碼,多使用參數和宏定義

      可綜合代碼

      目的: 避免不可綜合

      要求:

      • 按照功能進行模塊分割,同時,使用行為風格去設計功能塊,盡可能避免使用門級描述

      • 建立一個定義良好的時鐘策略,并在Verilog源代碼中清晰地體現該策略,保證時鐘和復位信號是干凈的,即不會由其他組合電路產生該信號

      • 建立一個定義良好的測試策略,使所有的觸發器都是可復位的

      • 描述組合和鎖存邏輯的always塊,必須在always塊開頭的控制事件列表中列出所有的輸入信號 (一般的EDA工具對這條規則是默)

      • 所有的輸出變量必須被各輸入值的組合賦值

      • always塊中已被定義為輸出的寄存器變量絕對不能再在該always中讀進來作為輸入信號

      • 時鐘沿觸發的always塊必須是單時鐘,并且任何異步控制輸入必須在控制事件列表中列出來

      • 避免生成額外的鎖存器

      在無時鐘的always塊中,由于有的輸出變量被賦了某個信號變量值,而該信號變量沒在該always塊的電平敏感控制事件中列出,這會在綜合中生成不想要的鎖存器。

      • 避免生成額外的觸發器

      在時鐘沿觸發的always 塊中,用非阻塞的賦值語句對寄存器類型的變量賦值,綜合后就會生成觸發器;或者當寄存器類型的變量在時鐘沿觸發的always 塊中經過多次循環它的值仍保持不變,綜合后也會生成觸發器。

      • 所有內部狀態寄存器必須是可復位的 (這并不適用于流水線或同步寄存器)

      • 一般情況下,在賦值語句中不能使用延遲,使用延遲的賦值語句是不可綜合的

      • 不要使用整型和time型寄存器,否則將分別綜合成32位和64位的總線。

      • 仔細檢查Verilog代碼中使用動態指針,循環聲明或算術運算部分,因為這類代碼在綜合后會生成大量的門,而且很難進行優化

      設計流程

      1. 系統分析
      2. 系統劃分
        2.1 頂級模塊
        2.2 模塊大小估計
        2.3 預布局
      3. 模塊級設計
        3.1 編寫RTL級Verilog
        3.2 綜合代碼檢查
        3.3 寫Verilog測試文件
        3.4 Verilog仿真
        3.5 寫綜合約束,邊界條件,層次
        3.6 預綜合以分析門的數量和延時
      4. 芯片綜合
        4.1 寫Verilog測試文件
        4.2 Verilog仿真
        4.3 綜合
        4.4 門級仿真
      5. 測試
      6. 布局布線
      7. 布局布線后的仿真測試
      

      Verilog使用注意事項

      always聲明語句

      always @(inputs) begin
          //組合邏輯
      end
      

      注意事項:

      • always塊中被賦值的只能是寄存器類型的變量
      • 如果always中沒有時間控制將會無限循環

      assign 連續賦值聲明語句

      當表達式中NET或寄存器類型變量的值發生變化時,使用assign可以在一個或更多的電路連接中創建事件

      wire cout,cin;
      wire[31:0] sum,a,b;
      assign {cout,sum}=a+b+cin;
      

      注意事項:

      • 連續賦值語句必須放在initialalways塊外

      • 連續賦值語句將被綜合成為組合邏輯電路

      begin聲明語句

      • begin-end模塊中至少要有一個聲明語句,同時聲明語句會被順序執行

      case聲明語句

      • 不確定值和高阻值在case語句的表達式匹配中都代表“不必考慮”

      • case中的賦值語句常常被綜合成多路器,如果變量被用作case語句的標號,它就會被綜合成優先編碼器

      • 在一個無時鐘觸發的always塊中,如有不完整的賦值,他將被綜合成透明鎖存器

      • 在一個有時鐘觸發的always塊中,如有不完整的賦值,他將被綜合成循環移位寄存器

      posted @ 2022-06-24 15:51  sunshineoier  閱讀(247)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产亚洲一区二区三区成人| av一区二区中文字幕| 高清有码国产一区二区| 伊人久久大香线蕉AV网禁呦| 精品人妻一区二区| 久久综合给合久久狠狠97色 | 久久人人爽人人爽人人av| 少妇办公室好紧好爽再浪一点| 亚洲国产福利成人一区二区| 久热re这里精品视频在线6| 亚洲成人av综合一区| 国产亚洲av夜间福利香蕉149 | 中文字幕av无码一区二区三区| 国产亚洲中文字幕久久网| 在线播放深夜精品三级| 精品国产免费第一区二区三区| 人人爽人人澡人人人妻| 日韩放荡少妇无码视频| 国产成人一区二区三区视频免费| 久久综合免费一区二区三区| 亚洲精品久久一区二区三区四区| 国产三级a三级三级| 亚洲最大成人在线播放| 男人用嘴添女人下身免费视频| 国产麻豆放荡av激情演绎| 亚洲理论在线A中文字幕| 德化县| 久久精品国产亚洲精品色婷婷| 男女性高爱潮免费网站| 无码人妻一区二区三区精品视频| 一区二区三区四区亚洲自拍| 99热门精品一区二区三区无码| 人妻熟妇乱又伦精品无码专区| 国产不卡免费一区二区| 黑人av无码一区| 国内精品免费久久久久电影院97| 狠狠色狠狠色五月激情| 久久久www成人免费精品| 精品蜜臀国产av一区二区| 丰满爆乳一区二区三区| 欧美在线人视频在线观看|