# 驗證 1 ###### tags: `system verilog` > 隨手筆記 [TOC] ## Verilog 的埠口連接方式和缺點 修改較為繁瑣: - 需要修改`所有模組的埠口` - 需要修改`連接模組`的所有埠口 - 需要修改所有的模組`實體化`的埠口名稱 - 需要修改所有的`層次化的模組`埠口名稱 :::danger 如果忘記修改所有埠口名稱,會導致邊易出現錯誤 ::: 缺點如下: - 在`多個模組`中都需要宣告相應的埠口 - `通信協定`接口在多個模組中使用 - `不匹配的宣告`會導致`編譯錯誤` - 設計文檔修改埠口名之後需要修改`所有的模組`  ## SystemVerilog interface - interface 中集合了多個 verilog 類型的信號,是一個獨立的埠口類別 - interface 可以是一份獨立的文件  :::info 將多個模組通用的訊號集中放在一個文件中,就是 interface 的宣告! ::: - 利用 interface 簡化模組連接  :::info 定義好 interface 後,在使用上也需要實體化 (instance)! :::  - 如何使用 interface中的信號?  :::info 使用 "." 來引用埠口中的信號,在內部不需要知道他是輸入訊號 (input) 還是輸出訊號 (ouput)。 ::: - 埠口連接 - 通過名稱來引用信號  - interface modeport - module port 的簡稱 - 為內部信號提供不同的視圖 (DUT, test program) - 一個 interface 中可以提供任意數量的 modport :::info modport 只是聲明連接模組的信號的埠口方向:input, output 或 inout :::    ## 結論 - interface 的功能 - 一組信號/線路 - `獨立的文件(.sv)` - 在 interface 中定義`通訊協定` - 在 interface 中定義協議檢查和驗證函數:`task`, `function`, `assertion` - modport 可以定義 interface 的不同視圖 (DUT, test program) - input - output - inout - interface 中不能包含設計的層次結構 > 意即不能包含 module 的模組實體化 - interface 可以作為設計的介面,`可合成` - interface 中可以包含多個 `modport` --- ## Reference - ➜ []()
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up