题解 | #信号发生器#

信号发生器

https://www.nowcoder.com/practice/39f6766689cc448e928a0921d1d1f858

`timescale 1ns/1ns
module signal_generator(
	input clk,
	input rst_n,
	input [1:0] wave_choise,
	output reg [4:0]wave
	);

	reg [4:0] cnt;
	always @(posedge clk or negedge rst_n) begin
		if(!rst_n) begin
			cnt <= 0;
		end
		else if(cnt >= 19) begin
			cnt <= 0;
		end
		else begin
			cnt <= cnt + 1'b1;
		end
	end

	reg flag;
	// 三角波模式下,标志位控制
    always@(posedge clk or negedge rst_n) begin
        if(~rst_n)
            flag <= 0;
        else
            flag <= wave_choise!=2 ? 0:
                    wave       ==1 ? 1:
                    wave       ==19? 0:
                    flag;
    end

	always @(posedge clk or negedge rst_n) begin
		if(!rst_n) begin
			wave <= 0;
		end
		else begin
			case(wave_choise)
				0:	wave <= (cnt == 9)?(20):(cnt == 19?0:wave);
				//0:	wave <= (cnt >= 9)?(20):(0);
				1:	wave <= (wave == 20)?0:(wave + 1'b1);
				2:  wave <= (flag == 0)?(wave - 1'b1):(wave + 1'b1);
				default: wave <= 0;
			endcase
		end
	end


endmodule

全部评论

相关推荐

亮点儿:昨天二面,今天看状态回到一面了查看图片
点赞 评论 收藏
分享
大厂的边缘业务去了也没啥用,也得不到任何成长,尤其是审核、中台这种价值产出不清楚的,别被大厂光环蒙蔽了双眼,如果你找实习工作,优先找"离钱近的业务",钱多的业务福利年终奖啥的都不会差的
陈100:呵呵。 你在大厂工作2年,后面准备好,可以随便跳很多公司。 去小厂,现在拿到所谓多的钱,有啥用啊,未来没有了。 而且应届生,工作没几年的,也不是赚钱的时间。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务