小m序列的verilog实现

verilog实现及仿真

m_sequence.v(以x8+x4+x3+x2+1为例):

module m_sequence(
	input				sclk,
	input				rst_n,
	output	wire			m_seq
);
parameter POLY = 8'b10001110;//由本原多项式得到

reg [7:0]	shift_reg;

always@(posedge sclk or negedge rst_n)
begin
	if(rst_n == 0)begin
		shift_reg <= 8'b11111111;//初值不可为全零
		end
	else begin
		shift_reg[7] <=  (shift_reg[0] & POLY[7])^
						(shift_reg[1] & POLY[6])^
						(shift_reg[2] & POLY[5])^
						(shift_reg[3] & POLY[4])^
						(shift_reg[4] & POLY[3])^
						(shift_reg[5] & POLY[2])^
						(shift_reg[6] & POLY[1])^
						(shift_reg[7] & POLY[0]);
		shift_reg[6:0] <= shift_reg[7:1];				 
		end
end

assign m_seq = shift_reg[0];

endmodule

参考链接:m序列的原理以及verilog实现_何时立秋丷的博客-CSDN博客_verilog m序列

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bronceyang131

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值