题解 | #信号发生器#

信号发生器

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;
	reg flag;

	always@(posedge clk or negedge rst_n) begin
		if(!rst_n) begin
			cnt <= 'd0;
		end
		else begin
			cnt <= cnt + 'd1;
		end
	end

	always@(posedge clk or negedge rst_n) begin
		if(!rst_n) begin
			flag <= 1'b0;
		end
		else begin
			flag <= (cnt=='d31)?(~flag):flag;
		end
	end

	always@(posedge clk or negedge rst_n) begin
		if(!rst_n) begin
			wave <= 'd0;
		end
		else begin
			case(wave_choise)
				2'd0: wave <= {5{(cnt>='d16)}};
				2'd1: wave <= cnt;
				2'd2: wave <= flag?(5'd31-cnt):cnt;
				default: wave <= 'd0;
			endcase
		end
	end

  
endmodule


全部评论

相关推荐

07-01 23:23
郑州大学 Java
否极泰来来来来:牛客迟早有高三的
点赞 评论 收藏
分享
zzzzhz:兄弟你先猛猛投简历至少三百家,能约到面试就去面。最近可以速成智能小车,智慧家居烂大街的项目,不需要自己写,只需要把里面的代码讲解看明白就行。把其中涉及到的八股文都拿出来单独背一下,我去年找工作就一个智能小车智慧家居找了10k差不多。
点赞 评论 收藏
分享
07-15 11:43
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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