📄 cpu_alu.v
字号:
`timescale 1ns/1ns
module cpu_alu(alu_out,zero,opcode,data_in,accum,clk);
input [2:0] opcode;
input [15:0] data_in,accum;
input clk;
output [15:0] alu_out;
output zero;
reg [15:0] alu_out;
parameter z_delay=1.5, alu_delay=4.5;
always @(posedge clk)
begin
case(opcode)
3'b000: #alu_delay alu_out=accum;
3'b001: #alu_delay alu_out=accum;
3'b010: #alu_delay alu_out=data_in+accum;
3'b011: #alu_delay alu_out=data_in&accum;
3'b100: #alu_delay alu_out=data_in^accum;
3'b101: #alu_delay alu_out=data_in;
3'b110: #alu_delay alu_out=accum;
3'b111: #alu_delay alu_out=accum;
default: begin
$display("unknown opcode");
#alu_delay alu_out=16'bx;
end
endcase
end
assign #z_delay zero=(accum==0)?1:0;
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -