Getting Started
阿新 • • 發佈:2021-11-23
problem 1-3
。
problem 1:zero
- 新建一個輸出埠,如果什麼都不做,輸出埠會被預設賦值為 0,不推薦
- Verilog 裡面的值預設格式為
1'b1
,前面的 1 是表示位數,後面的 1 是表示值,字母 b 是表示二進位制,相應的,十進位制是 d,十六進位制是 h 等等
problem 2:Wire
wire 可以理解為一個訊號,即從 A 點到 B 點,也可以一輸入多輸出,輸入通常稱為驅動,即把某個訊號(值)驅動到 wire 上
把驅動的概念用 Verilog 表示,記為
assign left_side=right_side
right_side 的值就被驅動到了 left_side 中,這種語法叫做連續賦值
- 請注意與軟體中的賦值操作做區分,Verilog 中的賦值是使用一條帶有方向的導線連線了兩個訊號,所以 left_side 始終等於 right_side,隨 right_side 變化而變化。而軟體中的賦值是一種事件,某個時刻 left_side 的值變成了和 right_side 相同的值
problem 3 :Wire4
一個源驅動多個訊號,
assign
語句描述的是一種埠之間的連線狀態,而不是一次性賦值右值,因此多個assign
語句之間的順序無關緊要- 圖中的綠線代表的是 wire 之間的連線,而不是 wire 本身。即 wire 是連線兩端的訊號,而不是連線本身。
input a;//實際上是input wire a;
- assign 不是創造 wire,而是創造 wire 之間的連線
wire 是訊號,而 assign 語句則建立了訊號之間的連線,這種連線是有方向性。
模組的輸入輸出埠也同樣是 wire