verilogHDL學習記錄3

2021-10-11 17:36:24 字數 1593 閱讀 7723

//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;//復位訊號res=0;

endelse begin

y<=sum;

endendmodule

wire和reg型變數的區別是:wire型資料常用來表示已assign關鍵字指定的組合邏輯訊號。模組的輸入輸出埠型別都預設位wire型。reg型表示的暫存器型別,always模組內被賦值的訊號,必須定義位reg型,代表觸發器。

形象表述:reg相當於儲存單元,wire相當於物理連線。

//四級偽隨機碼發生器;

module m_gen(clk,res,y)

;input clk;

input res;

output y;

reg[3:0] d;

assign y=d[0]

;always@(posedge clk or negedge res)

if(~res)begin

d<=4'b1111;

endelse begin

d[2:0]

<=d[3:1]

;//右移一位;

d[3]

<=d[3]+d[0]

;end

endmodule

//秒計數器,0-9迴圈;

module s_counter(clk,res,s_num)

;input clk;

input res;

output[3:0] s_num;

parameter frequency_clk=24;//24mhz;

reg[24:0] con_t;//秒脈衝分頻計數器

reg s_pulse;//秒脈衝尖;

reg[3:0] s_num;

always@(posedge clk or negedge res)

if(~res)begin

con_t<=0;s_pulse<=0;

endelse begin

if(con_t==frequency_clk*1000000-1)begin

con_t<=0;

endelse begin

con_t<=con_t+1;

endif(con_t==0)begin

s_pulse<=1;

endelse begin

s_pulse<=0;

endif(s_pulse)begin

if(s_num==9)begin

s_num=0;

endelse begin

s_num<=s_num+1;

endend

endendmodule

Verilog HDL語言學習筆記

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

Linux學習記錄(3)

ifconfig eth0 位址 ifconfig 檢視當前的位址ip vim文字編輯器 vim 開啟的該檔名 命令列模式 按i進入插入模式 底行模式 wq為儲存 wq 為強制儲存 在底行 set number可以顯示序號 sudo apt get install vim gtk set numbe...

Java學習記錄3

封裝就是把物件的資訊和內部邏輯結構隱藏起來 private default 如果類中成員不使用任何訪問控制符修飾,就稱它是包訪問許可權。使用包訪問許可權修飾的成員可以被相同包下的其他類訪問。protected 如果類成員中使用protected修飾,則這個成員既可以被同乙個包下的其他類訪問,也可以被...