?? pn_code.v
字號:
module pn_encode(data_source,init,clk_pn,reset_pn,flag_tra,pn_out);
input data_source;
input init; //init為1時,賦予x[3:0]初值0001,下拉
input clk_pn; //pn碼的碼元速率
input reset_pn; //pn碼重新回零,上拉
output flag_tra; //當reset_pn重啟后,flag_tra開始計數,計夠兩個來一個0,計夠四個來一個1,并回零重來
output pn_out; //pn碼與輸入全一信號相乘后的輸出信號
reg flag_tra; //4b5b的轉換信號,上升沿有效
reg[3:0] flag_tra_counter;
reg[3:0] x; //寄存器
assign pn_out=data_source^x[3]^x[0];
always @(posedge clk_pn)
begin
if(!reset_pn) //零的時候回零
x[3:0]<='b0000;
else
begin
if(init==1)
begin
x[3:0]<='b0001;
flag_tra_counter<='b000;
end
else
begin
x[0]<=x[3]^x[0]^data_source;
x[1]<=x[0];
x[2]<=x[1];
x[3]<=x[2];
if(flag_tra_counter==3)
flag_tra_counter<='b000;
else
begin
flag_tra_counter<=flag_tra_counter+1;
if(flag_tra_counter<=1)
flag_tra<=1;
else
flag_tra<=0;
end
end
end
end
endmodule
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -