阿扣的Verilog HDL學習筆記

2021-10-02 14:31:55 字數 3187 閱讀 1971

第4章 模組和埠

模組定義(模組名、埠列表、引數、變數宣告、資料流描述語句、行為語句、呼叫(例項引用)其他模組及任務、函式……;定義和宣告埠列表;埠連線規則;用有序列表和名字將埠與外部訊號相連;層次引用

4.1

模組

//測試激勵訊號模組

module top; //

宣告wire、reg和其他型別變數

wire q, qbar;

reg set, reset; //

呼叫(例項引用)較低層次模組(sr_latch)

sr_latch m1(q, qbar, -set, -reset); //

行為模組,初始化

initial

begin

$monitor($time, " set = %b, reset = %b, q = %b\n", set, reest, q);

set = 0; reset = 0;

#5  reset = 1;

#5  reset = 0;

#5  set = 1;

endendmodule //

模組名和埠列表

module sr_latch(q, qbar, sbar, rbar); //

埠宣告output q, qbar;

input sbar, rbar; //

呼叫較低層次模組;注意交叉連線情況

nand n1(q, sbar, qbar);

nand n2(qbar, rbar, q); //

模組語句結束

endmodule

4.2

沒有埠列表的頂層模組。埠列表

module fulladd4(sum, c_out, a, b, c_in); //

有埠列表的模組。埠列表 //

埠宣告output [3:0]  sum;

output  c_cout;

input [3:0] a, b,;

input  c_in;

//...

//<

模組內容》

//...

endmodule

verilog關鍵字

埠型別input

輸入埠output

輸出埠inout

雙向埠module dff(q, d, clk, reset);

output q;

reg q; //

input d, clk, reset;

//...

endmodule

module fulladd4(output  reg[3:0] sum, output  reg c_out, input  [3:0] a, b, input  c_in); //

兩個input預設為wire

宣告連線變數

reg  [3:0] a, b;

reg  c_in;

reg  [3:0] sum;

wire  c_out; //

呼叫fulladd4,命名為fa0

fulladd4  fa0(sum, c_out, a, b, c_in);

//fulladd4

模組中輸出埠被連線到投票模組的暫存器變數sum上。

...//

激勵測試**

endmodule

module top; //

連續宣告變數

reg  [3:0] a, b;

reg  c_in;

wire  [3:0]  sum;

wire  c_out; //

fulladd4  fa_ordered (sum, c_out, a, b, c_in);

...//<

測試激勵》

endmodule

module  dulladd4(sum, c_out, a, b, c_in);

output  [3:0]  sum;

output  c_cout;

input  [3:0] a, b;

input  c_in;

//<

模組內容》

endmodule         //

呼叫以fa_byname命名的全加器fulladd4,通過埠名與外部訊號連線。

fulladd4  fa_byname(.c_out(c_out), .sum(sum),  .b(b), .c_in(c_in), .a(a),); //

呼叫以fa_byname命名的全加器fulladd4,通過埠名與外部訊號連線。c_out懸空

fulladd4  fa_byname(.sum(sum),  .b(b),  .c-in(c_in),  .a(a);

4.3

層次命名

verilogHDL學習記錄3

8位計數器 module con clk.res,y input clk input res output 7 0 y reg 7 0 y wire 7 0 sum assign sum y 1 always posedge clk or negedge res if res begin y 0 復...

Verilog HDL語言學習筆記

verilog hdl語言 verilog hdl 是一種硬體描述語言 hdl hardware discription language 是一種以文字形式來描述數字系統硬體的結構和行為的語言。用它可以表示邏輯電路圖 邏輯表示式,還可以表示數字邏輯系統所完成的邏輯功能。是由gateway desig...

阿不思的學習日誌

恩 今天第一次寫部落格啊,記錄一些學習上的小知識點,希望可以幫助自己學習。關於jdbc資料庫連線 jdbc oracle thin 127.0.0.1 1521 orcl yonghuming mima jdbc 表示的是通過jdbc的方式連線資料庫。oracle表示的是連線的是oracle資料庫 ...