下面用兩種方式產生偽隨機序列產生器
只要學習過數電知識的應該都不難理解上圖時序邏輯電路
module pn_gen(clk,n_rst,y); //利用verilog編寫,在vivado**實現
input clk,n_rst;
output [7:0] y;
reg [7:0] lfsr,lfsr_next;
reg [7:0] feedback;
always @(posedge clk)
begin
if(!n_rst)
lfsr = 8'b0000_0000;
else
lfsr = lfsr_next;
endalways @(lfsr)
begin
feedback = lfsr[7]^(~|lfsr[6:0]); //根據上圖移位暫存器
lfsr_next[7] = lfsr[6];
lfsr_next[6] = lfsr[5];
lfsr_next[5] = lfsr[4];
lfsr_next[4] = lfsr[3];
lfsr_next[3] = lfsr[2];
lfsr_next[2] = lfsr[1];
lfsr_next[1] = lfsr[0];
lfsr_next[0] = feedback;
endassign y = lfsr;
endmodule
void pn_seq_gen(ap_uint<8> *pn_out_8) //用c語言編寫,在vivadohls實現生成ip核
線性反饋移位暫存器(lfsr)實 Verilog學習筆記(二) 模組
模組是 verilog 的基本描述單位,用於描述某個設計的功能或結構及其與其他模組通訊的外部埠。乙個設計的結構可使用開關級原語 門級原語和使用者定義的原語方式描述 設計的資料流行為使用連續賦值語句進行描述 時序行為使用過程結構描述。乙個模組可以在另乙個模組中使用。乙個模組的基本語法如下 module...
FPGA學習筆記(二) verilog 語法講解
verilog語法介紹 數位電路中主要有組合邏輯和時序邏輯兩種電路。組合邏輯 多路選擇器 解碼器 加法器 乘法器等 時序邏輯 最基本的是計數器。verilog檔案的基本結構 乙個檔案中可以包含多個模組。方法1 模組宣告 模組名 埠列表 module mux2 a,b,sel,out,io 埠屬性定義...
Verilog學習日誌(二)
1 非阻塞賦值方法 如 b a 塊結束後才完成賦值操作 b的值並不是立刻改變 這是一種常用的賦值方法 2 阻塞賦值方法 如 b a 賦值語句執行完後塊才結束 b的值在賦值語句執行後立刻改變 可能產生意想不到的結果 1 塊內的語句是按順序執行的,上一條語句執行完才能執行下一條語句 2 每條語句的延遲世...