题解 | #信号发生器#

信号发生器

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

//一个用cnt计数 一个是用flag判断 需要
`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)
		cnt<=0;
		else
		begin
			if(wave_choise==0)
			begin
		    if (cnt>=5'd19)
			cnt<=0;
			else 
			cnt<=cnt+1;
			end
			else
			cnt<=0;
			end
	end

	reg flag;
	always@(posedge clk or negedge rst_n)
    begin
		if(!rst_n)
		flag<=1;
		else begin
			if(wave_choise==2)
			begin
			if (wave==5'd19)
			flag<=1;
			else if(wave==1)//等于0的时候 下一个时钟信号就溢出到31去了
			flag<=0;
			else
			flag<=flag;
			end
			else 
			begin
			if (wave==0)
			flag<=0;
			else
			flag<=1;
			end

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


  
endmodule

全部评论

相关推荐

找个工作&nbsp;学历是要卡的&nbsp;要求是高的&nbsp;技能不足是真的&nbsp;实习经验是0的&nbsp;简历无处可写是事实的&nbsp;钱不好赚是真的&nbsp;想躺平又不敢躺&nbsp;也不甘心躺&nbsp;怕自己的灵感和才华被掩埋甚至从未被自己发现&nbsp;又质疑自己是否真正有才华
码农索隆:你现在啊,你心里都明白咋回事,但是你没办法改变现状,一想到未来,你又没有信心狠下心来在当下努力。 得走出这种状态,不能一直困在那里面,哪不行就去提升哪,你一动不动那指定改变不了未来,动起来,积少成多才能越来越好
点赞 评论 收藏
分享
06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
nus2201602...:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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