📄 scrambler.v
字号:
//加扰解扰
module scrambler(clk,seqIn,seqOut,en);//clk为时钟,seqIn为输入序列,seqOut为加扰或加扰后的输出序列,en为使能信号
//,m_seq,tempReg,count
input clk,en;
input [7:0]seqIn;
output [7:0]seqOut;
//output [6:0]m_seq;
//output [31:0]count;
reg [31:0]count;//计数器
reg [7:0]seqOut;
reg [6:0]m_seq;//m序列
reg [7:0]tempReg;
//integer count;
always @(negedge clk) begin:scrambler
integer i;
/**初始化**/
if(en)begin
m_seq=7'b1111111;
count=239;
end
/**初始化**/
/**一帧数据加扰或解扰结束**/
if(count==0)begin
m_seq=7'b1111111;//m序列初始值为全1
count=239;//239个字节
end
/**一帧数据加扰或解扰结束**/
count=count-1;
/**对一个字节进行加扰或解扰**/
for(i=7;i>=0;i=i-1)begin
tempReg[i]=m_seq[3]^m_seq[6];
m_seq={m_seq[5:0],tempReg[i]};//m序列
end
seqOut<=tempReg^seqIn;
/**对一个字节进行加扰或解扰**/
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -