使用3个寄存器产生011序列

本文探讨了一种Verilog实现的逻辑序列生成器,通过避免特定序列生成错误,如000111,分析了双非门的使用情况。在没有仿真工具的情况下,也能通过手动推导验证其工作原理。代码示例展示了如何在时钟边沿触发下改变逻辑状态,以产生所需的序列。
摘要由CSDN通过智能技术生成

这里写自定义目录标题


据我理解,应该有万能的公式,但是我不会,就枚举了一下
首先,
如果只有一个非是不行的,那会产生000111的序列
如果没有非的话,就是0序列
如果全部都是非的话,也不行,那样就等效于一个非
所以是两个非

`timescale 1ns/1ps
module seq();

reg clk;
reg rst_n;
reg q1, q2, q3;

initial begin
clk = 0;
rst_n = 0;
#10 rst_n = 1;
end

always #5 clk = ~clk;

always@(posedge clk) begin
	if(~rst_n)	begin
		q3 <=0;
		q2 <= 0;
		q1 <= 0;
	end
	else
	begin
		q3 <=~ q2;
		q2 <= q1;
		q1 <=~ q3;
	end
end

endmodule

在这里插入图片描述
如果是上面两个连非,或者下面两个连非,会产生001序列请添加图片描述
如果没有仿真工具,也可以自己推导

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值