stuff
This commit is contained in:
parent
c01ab62ed2
commit
bd53fe8783
32
cpu/alu.v
Normal file
32
cpu/alu.v
Normal file
@ -0,0 +1,32 @@
|
||||
module alu(a,b,op,r);
|
||||
input [3:0] a,b;
|
||||
input op;
|
||||
output [3:0] r;
|
||||
wire a,b,op;
|
||||
reg r;
|
||||
always @(*)
|
||||
if (op==0) begin
|
||||
r=a+b;
|
||||
end else begin
|
||||
r=a-b;
|
||||
end
|
||||
endmodule
|
||||
module alu_tb();
|
||||
reg [3:0] a,b;
|
||||
reg op;
|
||||
wire [3:0] r;
|
||||
alu tb_alu(.a (a),
|
||||
.b (b),
|
||||
.op (op),
|
||||
.r (r)
|
||||
);
|
||||
initial begin
|
||||
$monitor("a=%h,b=%h,op=%h,r=%h",
|
||||
a,
|
||||
b,
|
||||
op,
|
||||
r);
|
||||
#1 a=2;b=2;op=0;
|
||||
#1 a=3;b=2;op=1;
|
||||
end
|
||||
endmodule
|
20
cpu/datareg.v
Normal file
20
cpu/datareg.v
Normal file
@ -0,0 +1,20 @@
|
||||
// Data Register for CPU1. Used for A,B,and R
|
||||
// Original 8 bit design by Charlie Krauter for KT8.
|
||||
// 4 bit register with reset and enable
|
||||
|
||||
module datareg(clk_i,
|
||||
rst_i,
|
||||
en_i,
|
||||
in_i,
|
||||
out_o );
|
||||
input clk_i, rst_i, en_i;
|
||||
input [3:0] in_i;
|
||||
output [3:0] out_o;
|
||||
|
||||
reg [3:0] out_o;
|
||||
|
||||
always @(posedge clk_i, posedge rst_i)
|
||||
if (rst_i) out_o<=0;
|
||||
else if (en_i) out_o<=in_i;
|
||||
|
||||
endmodule
|
Loading…
x
Reference in New Issue
Block a user