⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 state_m.v

📁 Altare公司用于训练新人的练习题
💻 V
字号:
/* State machine design for Quartus tutorial Project */

module state_m ( clk, reset, newt, sel, next, first);

  // Port Declaration
input clk, reset, newt;
output next, first;
output [1:0]sel;

  // Wire Declaration
reg next, first;
reg [1:0] sel;
reg [2:0] filter;

parameter idle = 0, tap1 = 1, tap2 = 2, tap3 = 3, tap4 = 4;

always
begin
	case (filter)
		idle: begin
				sel = 0;
				next = 0;
				first = 0;
			  end

		tap1: begin
				sel = 0;
				next=0;
				first = 1;
			  end

		tap2: begin
				sel = 1;
				next=0;
				first = 0;
			  end

		tap3: begin
				sel = 2;
				next=0;
				first=0;
			  end

		tap4: begin
				sel = 3;
				next = 1;
				first=0;
			   end
	endcase
end


always @(posedge clk or posedge reset)
begin
	if (reset)
		filter = idle;
	else
		case (filter)
			idle: begin
				if (newt)
					filter = tap1;
				  end
				
			tap1: begin
					filter = tap2;
				  end

			tap2: begin
					filter = tap3;
				  end

			tap3: begin
					filter = tap4;
				  end

			tap4: begin
					if (newt)
						filter = tap1;
					else
						filter = idle;
				   end
		endcase	

end		
endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -