?? code.v
字號(hào):
// 可綜合模塊
// 此模塊將signal.v 中產(chǎn)生的indata信號(hào)進(jìn)行編碼:
// 1 編碼成為31位的+M序列;0 編碼為-M 序列。
// 其中包括了一個(gè)5級(jí)的移位寄存器用于產(chǎn)生M序列。
`timescale 1ns/1ns
module coder( clk_1, //數(shù)據(jù)輸入時(shí)鐘
clk_31, //數(shù)據(jù)輸出時(shí)鐘
indata, //輸入數(shù)據(jù)
outdata, //輸出數(shù)據(jù)
rst, //啟動(dòng)信號(hào)
en); //使能信號(hào)
input clk_1,clk_31;
input rst,en;
input indata;
output [1:0] outdata; //輸出信號(hào):+1表示代碼1 ;-1表示代碼0
wire [1:0] outdata;
reg indata_buf; //輸入積存器
reg [4:0] shift_buf; //M序列產(chǎn)生的5位移位積存器
assign outdata =(en)?(((indata_buf^shift_buf[0])==1)?2'b11:2'b01):2'b00; //當(dāng)en信號(hào)高電平時(shí),
//輸入信號(hào)為1時(shí)產(chǎn)生+M序列
//輸入信號(hào)為-1時(shí)產(chǎn)生-M序列
always@(posedge clk_1) //clk_1信號(hào)來(lái)臨則將輸入信號(hào)indata積存到indata_buf中
indata_buf <=indata;
always@(posedge clk_31)
begin
if(!rst)
shift_buf <=5'b10000; //五位初始為10000
if(en)
begin
shift_buf[4] <=shift_buf[0]^shift_buf[3]; //5級(jí)M序列編碼規(guī)則
shift_buf[0] <= shift_buf[1];
shift_buf[1] <= shift_buf[2];
shift_buf[2] <= shift_buf[3];
shift_buf[3] <= shift_buf[4];
end
end
endmodule
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -