📄 code.v
字号:
// 可综合模块
// 此模块将signal.v 中产生的indata信号进行编码:
// 1 编码成为31位的+M序列;0 编码为-M 序列。
// 其中包括了一个5级的移位寄存器用于产生M序列。
`timescale 1ns/1ns
module coder( clk_1, //数据输入时钟
clk_31, //数据输出时钟
indata, //输入数据
outdata, //输出数据
rst, //启动信号
en); //使能信号
input clk_1,clk_31;
input rst,en;
input indata;
output [1:0] outdata; //输出信号:+1表示代码1 ;-1表示代码0
wire [1:0] outdata;
reg indata_buf; //输入积存器
reg [4:0] shift_buf; //M序列产生的5位移位积存器
assign outdata =(en)?(((indata_buf^shift_buf[0])==1)?2'b11:2'b01):2'b00; //当en信号高电平时,
//输入信号为1时产生+M序列
//输入信号为-1时产生-M序列
always@(posedge clk_1) //clk_1信号来临则将输入信号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级M序列编码规则
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -