Files
eb001/src/main/scala/backBoard/pico/picorv32.scala

54 lines
1.2 KiB
Scala
Raw Normal View History

2024-10-24 18:03:25 +08:00
package BACK
import chisel3._
import chisel3.util._
2024-10-25 10:51:36 +08:00
import chisel3.experimental._
2024-10-24 18:03:25 +08:00
2024-10-25 10:51:36 +08:00
class picorv32 extends BlackBox() with HasBlackBoxResource {
2024-10-25 10:51:36 +08:00
val io = IO(new Bundle {
val clk = Input(Bool())
2024-10-28 18:01:25 +08:00
val resetn = Input(Bool())
2024-10-25 10:51:36 +08:00
val trap = Output(Bool())
val mem_valid = Output(Bool())
val mem_instr = Output(Bool())
val mem_ready = Input(Bool())
val mem_addr = Output(UInt(32.W))
val mem_wdata = Output(UInt(32.W))
val mem_wstrb = Output(UInt(4.W))
val mem_rdata = Input(UInt(32.W))
// Look-Ahead Interface
val mem_la_read = Output(Bool())
val mem_la_write = Output(Bool())
val mem_la_addr = Output(UInt(32.W))
val mem_la_wdata = Output(UInt(32.W))
val mem_la_wstrb = Output(UInt(4.W))
// Pico Co-Processor Interface (PCPI)
val pcpi_valid = Output(Bool())
val pcpi_insn = Output(UInt(32.W))
val pcpi_rs1 = Output(UInt(32.W))
val pcpi_rs2 = Output(UInt(32.W))
val pcpi_wr = Input(Bool())
val pcpi_rd = Input(UInt(32.W))
val pcpi_wait = Input(Bool())
val pcpi_ready = Input(Bool())
// IRQ Interface
val irq = Input(UInt(32.W))
val eoi = Output(UInt(32.W))
// Trace Interface
val trace_valid = Output(Bool())
val trace_data = Output(UInt(36.W))
})
addResource("./picorv32.v")
}