mirror of https://github.com/YosysHQ/picorv32.git
140 lines
3.2 KiB
Verilog
140 lines
3.2 KiB
Verilog
|
|
module top_small (
|
|
input clk, resetn,
|
|
|
|
output mem_valid,
|
|
output mem_instr,
|
|
input mem_ready,
|
|
|
|
output [31:0] mem_addr,
|
|
output [31:0] mem_wdata,
|
|
output [ 3:0] mem_wstrb,
|
|
input [31:0] mem_rdata
|
|
);
|
|
picorv32 #(
|
|
.ENABLE_COUNTERS(0),
|
|
.LATCHED_MEM_RDATA(1),
|
|
.TWO_STAGE_SHIFT(0),
|
|
.CATCH_MISALIGN(0),
|
|
.CATCH_ILLINSN(0)
|
|
) picorv32 (
|
|
.clk (clk ),
|
|
.resetn (resetn ),
|
|
.mem_valid(mem_valid),
|
|
.mem_instr(mem_instr),
|
|
.mem_ready(mem_ready),
|
|
.mem_addr (mem_addr ),
|
|
.mem_wdata(mem_wdata),
|
|
.mem_wstrb(mem_wstrb),
|
|
.mem_rdata(mem_rdata)
|
|
);
|
|
endmodule
|
|
|
|
module top_regular (
|
|
input clk, resetn,
|
|
output trap,
|
|
|
|
output mem_valid,
|
|
output mem_instr,
|
|
input mem_ready,
|
|
|
|
output [31:0] mem_addr,
|
|
output [31:0] mem_wdata,
|
|
output [ 3:0] mem_wstrb,
|
|
input [31:0] mem_rdata,
|
|
|
|
// Look-Ahead Interface
|
|
output mem_la_read,
|
|
output mem_la_write,
|
|
output [31:0] mem_la_addr,
|
|
output [31:0] mem_la_wdata,
|
|
output [ 3:0] mem_la_wstrb
|
|
);
|
|
picorv32 picorv32 (
|
|
.clk (clk ),
|
|
.resetn (resetn ),
|
|
.trap (trap ),
|
|
.mem_valid (mem_valid ),
|
|
.mem_instr (mem_instr ),
|
|
.mem_ready (mem_ready ),
|
|
.mem_addr (mem_addr ),
|
|
.mem_wdata (mem_wdata ),
|
|
.mem_wstrb (mem_wstrb ),
|
|
.mem_rdata (mem_rdata ),
|
|
.mem_la_read (mem_la_read ),
|
|
.mem_la_write(mem_la_write),
|
|
.mem_la_addr (mem_la_addr ),
|
|
.mem_la_wdata(mem_la_wdata),
|
|
.mem_la_wstrb(mem_la_wstrb)
|
|
);
|
|
endmodule
|
|
|
|
module top_large (
|
|
input clk, resetn,
|
|
output trap,
|
|
|
|
output mem_valid,
|
|
output mem_instr,
|
|
input mem_ready,
|
|
|
|
output [31:0] mem_addr,
|
|
output [31:0] mem_wdata,
|
|
output [ 3:0] mem_wstrb,
|
|
input [31:0] mem_rdata,
|
|
|
|
// Look-Ahead Interface
|
|
output mem_la_read,
|
|
output mem_la_write,
|
|
output [31:0] mem_la_addr,
|
|
output [31:0] mem_la_wdata,
|
|
output [ 3:0] mem_la_wstrb,
|
|
|
|
// Pico Co-Processor Interface (PCPI)
|
|
output pcpi_valid,
|
|
output [31:0] pcpi_insn,
|
|
output [31:0] pcpi_rs1,
|
|
output [31:0] pcpi_rs2,
|
|
input pcpi_wr,
|
|
input [31:0] pcpi_rd,
|
|
input pcpi_wait,
|
|
input pcpi_ready,
|
|
|
|
// IRQ Interface
|
|
input [31:0] irq,
|
|
output [31:0] eoi
|
|
);
|
|
picorv32 #(
|
|
.COMPRESSED_ISA(1),
|
|
.ENABLE_PCPI(1),
|
|
.ENABLE_MUL(1),
|
|
.ENABLE_IRQ(1)
|
|
) picorv32 (
|
|
.clk (clk ),
|
|
.resetn (resetn ),
|
|
.trap (trap ),
|
|
.mem_valid (mem_valid ),
|
|
.mem_instr (mem_instr ),
|
|
.mem_ready (mem_ready ),
|
|
.mem_addr (mem_addr ),
|
|
.mem_wdata (mem_wdata ),
|
|
.mem_wstrb (mem_wstrb ),
|
|
.mem_rdata (mem_rdata ),
|
|
.mem_la_read (mem_la_read ),
|
|
.mem_la_write (mem_la_write ),
|
|
.mem_la_addr (mem_la_addr ),
|
|
.mem_la_wdata (mem_la_wdata ),
|
|
.mem_la_wstrb (mem_la_wstrb ),
|
|
.pcpi_valid (pcpi_valid ),
|
|
.pcpi_insn (pcpi_insn ),
|
|
.pcpi_rs1 (pcpi_rs1 ),
|
|
.pcpi_rs2 (pcpi_rs2 ),
|
|
.pcpi_wr (pcpi_wr ),
|
|
.pcpi_rd (pcpi_rd ),
|
|
.pcpi_wait (pcpi_wait ),
|
|
.pcpi_ready (pcpi_ready ),
|
|
.irq (irq ),
|
|
.eoi (eoi )
|
|
);
|
|
endmodule
|
|
|