题解 | #序列发生器#

序列发生器

https://www.nowcoder.com/practice/1fe78a981bd640edb35b91d467341061

`timescale 1ns/1ns

module sequence_generator(
	input clk,
	input rst_n,
	output reg data
	);

	reg [2:0]current_state;
	reg [2:0]next_state;
	parameter S0=0;
	parameter S1=1;
	parameter S2=2;
	parameter S3=3;
	parameter S4=4;
	parameter S5=5;

	always @(posedge clk or negedge rst_n)begin
		if(!rst_n)
		current_state<=S0;
		else
		current_state<=next_state;
	end

	always@(*)begin
	 case(current_state)

	 S0:begin
		next_state=S1;
	 end

	 S1:begin
		next_state=S2;
	 end

	 S2:begin
		next_state=S3;
	 end

	 S3:begin
		next_state=S4;
	 end

	 S4:begin
		next_state=S5;
	 end

	 S5:begin
		next_state=S0;
	 end
	 default:next_state=S0;
	 endcase
	end

	always @(posedge clk or negedge rst_n)begin
		if(!rst_n)
		data<=0;
		else
		case(current_state)
	 S0:begin
		data<=0;
	 end

	 S1:begin
		data<=0;
	 end

	 S2:begin
		data<=1;
	 end

	 S3:begin
		data<=0;
	 end

	 S4:begin
		data<=1;
	 end

	 S5:begin
		data<=1;
	 end
	 default:data<=0;
	 endcase
	end
		




endmodule

摩尔型状态机,输出只与状态有关。需要注意的的三段式中的最后一式,如果是case(current_state)则输出会晚一拍,不过本题好像就是要输出晚一拍

全部评论

相关推荐

在笔试的大西瓜很矫健:校招数分不用想了,这经历和学历都不够用,大厂更别想,初筛都过不了,说点不好听的小厂数分都进不去(小厂也是假数分),要两个对口实习+3个项目(或者3+2),而且要有含金量才能补一点你的学历劣势。 建议刷实习,社招找数分,校招看运气,能入行业就行,可以运营转数分
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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