verilog知識點解析

2021-12-30 01:02:32 字數 1180 閱讀 8503

一、verilog_hdl模型

所謂不同的抽象類別,實際上是指同乙個物理電路,可以在不同層次上用verilog語言來描述。如果只從行為功能的角度來描述某一電路模組,就稱作行為模組。如果從電路結構的角度來描述該電路模組,就稱作結構模組。根據抽象的級別將verilog的模組分為5種不同的等級:

(1)系統級(system-level):用語言提供的高階結構能夠實現待設定模組的外部效能的模型;

(2)演算法級(algorithm-level):用語言提供的高階結構能夠實現演算法執行的模型;

(3)rtl級(register transfer level):描述資料在暫存器之間的流動和如何處理、控制這些資料流動的模型;

以上三種屬於行為描述,只有rtl級才與邏輯電路有明確的對應關係;

(4)門級(gate-level):描述邏輯門以及邏輯門之間連線的模型,與邏輯電路有明確的關係;

(5)開關級(switch-level):描述器件中三極體和儲存節點以及他們之間連線的模型,與具體的物理電路有對應關係;

二、模組結構

verilog的基本設計單元是模組(block),乙個模組是由兩部分組成,一部分描述介面,另一部分描述邏輯功能,即定義輸入如何影響輸出。

verilog結構位於module和demodule宣告語句之間,每個verilog程式包括埠定義、i/o口說明、內部訊號宣告與功能定義。

2.1 模組的埠定義:module 模組名(埠1,埠2,......)

2.2 模組引用的埠連線

(1)嚴格按照埠順序進行連線,不用表明原模組定義時規定的埠名稱;

模組名(連線埠1訊號名,連線埠2訊號名,連線埠3訊號名,...)

(2)用埠名與被引用模組的埠相對應,而不必嚴格按照埠順序對應;

模組名(.埠1名(訊號1名),.埠2名(訊號2名),...)

我建議在fpga開發設計中使用第(2)中埠連線方式。

2.3 模組功能定義

(1)assign語句:wire變數,不能是reg變數

(2)用例項元件:鍵入元件的名字和相連的引腳,例如:and #2 u1(q, a, b);

(3)always塊,例如:always @(posedge clk or negedge rst)

assign語句是用來描述組合邏輯,always語句既可以用來描述組合邏輯,也可以描述時序邏輯,在同乙個verilog模組檔案中,

Verilog重點解析

1 連續賦值和過程賦值之間有什麼區別?2 initial和always中的賦值有什麼區別?initial和always中的賦值都是過程賦值。3 阻塞和非阻塞賦值之間有什麼區別?阻塞和非阻塞賦值都是過程賦值。4 如何使用連續賦值建模雙向nets?assign語句構成乙個連續賦值。rhs變化立即影響lh...

C 基礎知識 C 中引用的知識點解析

建立引用的作用通常是為變數起另乙個名字,變數的引用通常被認為是變數的別名。在宣告乙個引用時,必須用另乙個變數來將其初始化。例如 int i 5 int j i 宣告j是乙個整型變數變數的引用,並用i將其初始化。此處j可以看作是變數i的乙個別名,經過這樣的宣告後i和j的作用相同,代表同乙個變數。對其進...

關於知識付費的幾點解析

一 知識付費的背景 網際網路出現20多年來,資訊大 隨著部落格時代的到來,大量ugc充斥在網際網路上,導致資訊分辨挖掘成本增高,大量虛假無用資訊引發人們信任危機 由於資訊革命到來,帶來新的 工具 支付手段的便捷化 知識傳授的去平台化,為知識付費成為消費公升級中的乙個節點 伴隨移動端使用熱潮,碎片化時...