1
0
mirror of https://github.com/olofk/serv.git synced 2026-01-26 03:41:21 +00:00

Synthesis fixes

This commit is contained in:
Olof Kindgren
2018-11-22 20:58:45 +01:00
parent 458d12c81d
commit 1bbf8e3ce9
11 changed files with 67 additions and 87 deletions

View File

@@ -33,6 +33,7 @@ module serv_alu
reg init_r;
wire shamt_l;
wire shamt_ser;
wire plus_1;
ser_add ser_add_inv_shamt_plus1
(
@@ -63,7 +64,6 @@ module serv_alu
.i_d (i_rs1),
.o_q (result_sh));
wire plus_1 = i_en & !en_r;
wire b_inv_plus_1;
ser_add ser_add_inv_plus_1
@@ -107,7 +107,7 @@ module serv_alu
reg last_eq;
wire result_lt2 = last_eq ? result_lt : msb_lt;
assign plus_1 = i_en & !en_r;
assign o_cmp = i_cmp_neg^((i_cmp_sel == ALU_CMP_EQ) ? result_eq : result_lt2);
assign o_rd = (i_rd_sel == ALU_RESULT_ADD) ? result_add :

View File

@@ -261,7 +261,7 @@ module serv_decode
wire gate1 = (cnt == 0) & ((opcode == OP_BRANCH) | (opcode == OP_JAL));
wire gate12 = (cnt < 12) & utype;
wire o_imm = (!(gate1 | gate12) & (cnt_done ? signbit : m1 ? imm11_7[0] : imm24_20[0]));
assign o_imm = (!(gate1 | gate12) & (cnt_done ? signbit : m1 ? imm11_7[0] : imm24_20[0]));
assign o_op_b_source = (opcode == OP_OPIMM) ? OP_B_SOURCE_IMM :
(opcode == OP_BRANCH) ? OP_B_SOURCE_RS2 :

View File

@@ -20,12 +20,10 @@ module serv_mem_if
output wire [3:0] o_wb_sel,
output wire o_wb_we ,
output reg o_wb_cyc = 1'b0,
output wire o_wb_stb,
input wire [31:0] i_wb_rdt,
input wire i_wb_ack);
wire wb_en = o_wb_cyc & i_wb_ack;
assign o_wb_stb = o_wb_cyc;
reg init_r;
reg en_r;
reg en_2r;

View File

@@ -16,6 +16,7 @@ module serv_regfile
wire [31:0] rs;
wire [4:0] raddr2 = raddr & {5{i_rs_en}};
reg [31:0] mask;
always @(i_rd_addr)
@@ -58,7 +59,6 @@ module serv_regfile
if (i_rs_en)
raddr <= raddr + 1;
end
wire [4:0] raddr2 = raddr & {5{i_rs_en}};
assign o_rs1 = (|i_rs1_addr) ? rs[i_rs1_addr] : 1'b0;
assign o_rs2 = (|i_rs2_addr) ? rs[i_rs2_addr] : 1'b0;

View File

@@ -34,7 +34,6 @@ module serv_top
`endif
output wire [31:0] o_ibus_adr,
output wire o_ibus_cyc,
output wire o_ibus_stb,
input wire [31:0] i_ibus_rdt,
input wire i_ibus_ack,
output wire [31:0] o_dbus_adr,
@@ -42,12 +41,9 @@ module serv_top
output wire [3:0] o_dbus_sel,
output wire o_dbus_we ,
output wire o_dbus_cyc,
output wire o_dbus_stb,
input wire [31:0] i_dbus_rdt,
input wire i_dbus_ack);
assign o_ibus_stb = o_ibus_cyc;
`include "serv_params.vh"
wire [4:0] rd_addr;
@@ -190,7 +186,6 @@ module serv_top
.o_ibus_cyc (o_ibus_cyc),
.i_ibus_ack (i_ibus_ack));
//TODO: Pass imm through alu to avoid 5-way mux
assign rd = (rd_source == RD_SOURCE_CTRL) ? ctrl_rd :
(rd_source == RD_SOURCE_ALU) ? alu_rd :
(rd_source == RD_SOURCE_MEM) ? mem_rd : csr_rd;
@@ -249,7 +244,6 @@ module serv_top
.o_wb_sel (o_dbus_sel),
.o_wb_we (o_dbus_we ),
.o_wb_cyc (o_dbus_cyc),
.o_wb_stb (o_dbus_stb),
.i_wb_rdt (i_dbus_rdt),
.i_wb_ack (i_dbus_ack));

View File

@@ -1,4 +1,5 @@
module shift_reg
#(parameter LEN = 0)
(
input wire clk,
input wire i_en,
@@ -6,7 +7,6 @@ module shift_reg
output wire o_q,
output wire [LEN-2:0] o_par);
parameter LEN = 0;
parameter INIT = 0;
reg [LEN-1:0] data = INIT;