对FSMC的外部IO仿真接线

This commit is contained in:
Ruige Lee
2025-02-10 11:17:39 +08:00
parent 6ab7cc4590
commit 94acbfae03
4 changed files with 38 additions and 33 deletions

View File

@@ -57,7 +57,6 @@ VSimTop:
+define+RANDOMIZE_INVALID_ASSIGN \ +define+RANDOMIZE_INVALID_ASSIGN \
+define+RANDOMIZE_REG_INIT \ +define+RANDOMIZE_REG_INIT \
+define+RANDOMIZE_DELAY=0 \ +define+RANDOMIZE_DELAY=0 \
+define+VERILATOR \
--exe --build \ --exe --build \
${PWD}/tb/verilator/sim_main.cpp \ ${PWD}/tb/verilator/sim_main.cpp \
-Mdir ./tb/build/ \ -Mdir ./tb/build/ \

View File

@@ -160,12 +160,10 @@ class FSMC2TileLink(implicit p: Parameters) extends LazyModule{
val io = IO(new FSMC_Port_Bundle) val io = IO(new FSMC_Port_Bundle)
val ( fsmc_bus, fsmc_edge ) = fsmcNode.in.head val ( fsmc_bus, fsmc_edge ) = fsmcNode.in.head
// val tla = Wire(new DecoupledIO(new TLBundleA(fsmc_edge.bundle)))
// val tld = Wire(new DecoupledIO(new TLBundleD(fsmc_edge.bundle)))
val sram = Module(new MirrorSRAMDP()) val sram = Module(new MirrorSRAMDP())
//assert( ~(sram.io.enwA & sram.io.enrA) ) assert( ~(sram.io.enwA & sram.io.enrA) )
//assert( ~(sram.io.enwB & sram.io.enrB) ) assert( ~(sram.io.enwB & sram.io.enrB) )
sram.io.clockA := clock.asBool //system sram.io.clockA := clock.asBool //system
sram.io.clockB := clock.asBool //system sram.io.clockB := clock.asBool //system

View File

@@ -9,30 +9,6 @@ import freechips.rocketchip.tilelink._
import freechips.rocketchip.interrupts._ import freechips.rocketchip.interrupts._
// abstract class BackModule(implicit val p: Parameters) extends Module with HasBackParameters { def io: Record }
// abstract class BackBundle(implicit val p: Parameters) extends Bundle with HasBackParameters
// case object BackParamsKey extends Field[BackSetting]
// case class BackSetting(
// ){
// }
// trait HasBackParameters {
// implicit val p: Parameters
// val backSetting = p(BackParamsKey)
// }
// class BackCfg extends Config((_, _, _) => {
// case BackParamsKey => BackSetting()
// })
class TL2CDR(implicit p: Parameters) extends LazyModule{ class TL2CDR(implicit p: Parameters) extends LazyModule{
val device = new SimpleDevice("TL_CDR", Nil) val device = new SimpleDevice("TL_CDR", Nil)
val node = TLManagerNode(Seq(TLSlavePortParameters.v1( val node = TLManagerNode(Seq(TLSlavePortParameters.v1(

View File

@@ -211,7 +211,15 @@ ExampleRocketSystem s_rocket_mst(
.cdrio_dDatIn(1'b0), .cdrio_dDatIn(1'b0),
.cdrio_dDatOut(dDatSer[0]), .cdrio_dDatOut(dDatSer[0]),
.cdrio_isOnline(), .cdrio_isOnline(),
.cdrio_isLast(1'b0) .cdrio_isLast(1'b0),
.fsmcio_ADIn(16'b0),
.fsmcio_ADOut(),
.fsmcio_ADOEn(),
.fsmcio_csn(1'b1),
.fsmcio_rdn(1'b1),
.fsmcio_wrn(1'b1),
.fsmcio_advn(1'b1)
); );
@@ -397,7 +405,15 @@ ExampleRocketSystem s_rocket_slv0(
.cdrio_dDatOut(dDatSer[1]), .cdrio_dDatOut(dDatSer[1]),
.cdrio_isOnline(), .cdrio_isOnline(),
.cdrio_isLast(1'b0) .cdrio_isLast(1'b0),
.fsmcio_ADIn(16'b0),
.fsmcio_ADOut(),
.fsmcio_ADOEn(),
.fsmcio_csn(1'b1),
.fsmcio_rdn(1'b1),
.fsmcio_wrn(1'b1),
.fsmcio_advn(1'b1)
); );
@@ -583,7 +599,15 @@ ExampleRocketSystem s_rocket_slv1(
.cdrio_dDatOut(dDatSer[2]), .cdrio_dDatOut(dDatSer[2]),
.cdrio_isOnline(), .cdrio_isOnline(),
.cdrio_isLast(1'b0) .cdrio_isLast(1'b0),
.fsmcio_ADIn(16'b0),
.fsmcio_ADOut(),
.fsmcio_ADOEn(),
.fsmcio_csn(1'b1),
.fsmcio_rdn(1'b1),
.fsmcio_wrn(1'b1),
.fsmcio_advn(1'b1)
); );
@@ -769,7 +793,15 @@ ExampleRocketSystem s_rocket_slv2(
.cdrio_dDatOut(), .cdrio_dDatOut(),
.cdrio_isOnline(), .cdrio_isOnline(),
.cdrio_isLast(1'b1) .cdrio_isLast(1'b1),
.fsmcio_ADIn(16'b0),
.fsmcio_ADOut(),
.fsmcio_ADOEn(),
.fsmcio_csn(1'b1),
.fsmcio_rdn(1'b1),
.fsmcio_wrn(1'b1),
.fsmcio_advn(1'b1)
); );