1. 程式人生 > 其它 >Getting Started

Getting Started

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