📄 data_scramble.v
字号:
module DATA_scramble(SCRAM_SEED,SCRAM_CLK,SCRAM_DIN,SCRAM_LOAD,SCRAM_ND, SCRAM_RST,SCRAM_DOUT,SCRAM_RDY); input [7:1] SCRAM_SEED; // 扰码器初始设置信号,本程序采用7'b1011101 input SCRAM_CLK; // 时钟信号 input SCRAM_DIN; // 扰码器输入信号,已经将并行数据变成串行数据 input SCRAM_LOAD; // 扰码器初始设置信号,由MCU单元控制 input SCRAM_ND; // 扰码器淙胗效,与输入信号同步拉高 input SCRAM_RST; // 复位信号 output SCRAM_DOUT; // 扰码器输出信号 output SCRAM_RDY; // 扰码器输出有效信号,与输出信号同步拉高 reg [7:1] SCRAMBLER; // 扰码器,一个7位的移位寄存器 reg SCRAM_DOUT; // 扰码器输出信号定义成寄存器类型 reg SCRAM_RDY; // 扰码器输出有效信号定义成寄存器类型 always @ ( negedge SCRAM_RST or posedge SCRAM_CLK ) // 加扰过程 begin if ( !SCRAM_RST ) // 复位信号低电平有效 begin SCRAM_DOUT <= 0; SCRAM_RDY <= 0; SCRAMBLER <= 0; end else begin if ( SCRAM_LOAD ) // 扰码器初始设置信号,高电平有效 SCRAMBLER <= SCRAM_SEED; // 扰码器加载初始设置信号 else begin if ( SCRAM_ND ) // 扰码器输入有效 begin SCRAM_DOUT <= SCRAM_DIN + SCRAMBLER [7] + SCRAMBLER [4]; // 根据生成多项式S(X)=x^7+x^4+1写出扰码器输出信号的表达式 SCRAM_RDY <= 1; // 扰码器输出有效 SCRAMBLER <= { SCRAMBLER[6:1], SCRAMBLER [7] + SCRAMBLER [4] }; // 移位寄存器的输入信号 end else begin // 扰码器输入无效 SCRAM_DOUT <= 0; // 扰码器输出信号为零 SCRAM_RDY <= 0; // 扰码器输出有效为低电平 end end end endendmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -