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

📄 counter.v

📁 一个支持精简指令的16位的risc cpu
💻 V
字号:
//`timescale 10ns/1ns
module counter(pc_addr,to_d1,base_addr,bias_addr,op_j,op_jr,load_pc,reset);
output	[15:0]	pc_addr,to_d1;
input	[15:0]	base_addr;
input	[7:0]	bias_addr;
input	load_pc,reset,op_j,op_jr;
reg	[15:0]	pc_addr,to_d1;

always @ (posedge reset or posedge load_pc)
	begin
		if(reset)
			begin
			pc_addr <= 16'b0000_0000_0000_0000;
			to_d1 <= 16'b0000_0000_0000_0000;
			end
		else	if(load_pc)
			begin
			if(op_j&&(~op_jr))
				begin
				pc_addr <= pc_addr + {{8{bias_addr[7]}},bias_addr};
				to_d1 <= pc_addr + 1;
				end			
			else	if(op_jr&&(~op_j))
				begin
				pc_addr <= base_addr + {{8{bias_addr[7]}},bias_addr};
				to_d1 <= pc_addr + 1;
				end
			else	if(op_j&&op_jr)
				begin
				pc_addr <= pc_addr + {{8{bias_addr[7]}},bias_addr};
				to_d1 <= 16'bzzzz_zzzz_zzzz_zzzz;
				end
			else
				begin
				pc_addr <= pc_addr + 1;
				to_d1 <= 16'bzzzz_zzzz_zzzz_zzzz;
				end
			end
	end

endmodule


⌨️ 快捷键说明

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