blob: c01b2593b87b04d8f0321a4ae551ccbe2a78a295 [file] [log] [blame]
v {xschem version=2.9.8 file_version=1.2
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
}
G {}
K {}
V { wire [5:0] opcode;
assign opcode = instr[31:26];
wire [5:0] func;
assign func = instr[5:0];
wire is_add = ((opcode == 6'h00) & (func == 6'h20));
wire is_sub = ((opcode == 6'h00) & (func == 6'h22));
wire is_and = ((opcode == 6'h00) & (func == 6'h24));
wire is_or = ((opcode == 6'h00) & (func == 6'h25));
wire is_slt = ((opcode == 6'h00) & (func == 6'h2A));
wire is_lw = (opcode == 6'h23);
wire is_sw = (opcode == 6'h2B);
wire is_beq = (opcode == 6'h04);
wire is_addi = (opcode == 6'h08);
wire is_j = (opcode == 6'h02);
assign branch = is_beq;
assign jump = is_j;
assign mem_to_reg = is_lw;
assign mem_write = is_sw;
assign reg_dst = is_add | is_sub | is_and | is_or | is_slt;
assign reg_write = is_add | is_sub | is_and | is_or | is_slt | is_addi | is_lw;
assign alu_src = is_addi | is_lw | is_sw;
}
S {}
E {}
C {devices/title.sym} 160 -30 0 0 {name=l1 author="Stefan Schippers"}
C {devices/ipin.sym} 160 -180 0 0 {name=p11 lab=instr[31:0]}
C {devices/opin.sym} 340 -230 0 0 {name=p1 lab=branch}
C {devices/opin.sym} 340 -210 0 0 {name=p2 lab=jump}
C {devices/opin.sym} 340 -190 0 0 {name=p3 lab=mem_to_reg}
C {devices/opin.sym} 340 -170 0 0 {name=p4 lab=mem_write}
C {devices/opin.sym} 340 -150 0 0 {name=p5 lab=reg_dst}
C {devices/opin.sym} 340 -130 0 0 {name=p6 lab=reg_write}
C {devices/opin.sym} 340 -110 0 0 {name=p7 lab=alu_src}
C {devices/architecture.sym} 100 -770 0 0 { nothing here, use global schematic properties }