to the IO pads in the pinmux. However, at the time of writing this is
not fully understood by the author, so the fastifdecl and extfastifinstance
functions are modified to generate the correct output but the code is
-*commented out*, and the corresponding manual declarations of sdram_out
-removed.
+*commented out*
def extfastifinstance(self, name, count):
return "// TODO" + self._extifinstance(name, count, "_out", "", True,
return "// (*always_ready*) interface " + \
"Ifc_sdram_out sdr{0}_out;".format(count)
+Also the corresponding (old) manual declarations of sdram\_out
+removed from the template:
+
+ `ifdef SDRAM <-- xxxx
+ (*always_ready*) interface Ifc_sdram_out sdram_out; <-- xxxx
+ `endif <-- xxxx
+ ...
+ ...
+ `ifdef SDRAM <--- xxxx
+ interface sdram_out=sdram.ifc_sdram_out; <--- xxxx
+ `endif <--- xxxx
+
+
+
Next, again searching for signs of the "hand-written" code, we encounter
the fabric connectivity, which wires the SDRAM to the AXI4. We note however
that there is not just one AXI slave device but *two*: one for the SDRAM
(*always_ready,always_enabled*)
method Action boot_sequence(Bit#(1) bootseq);
- `ifdef SDRAM
- (*always_ready*) interface Ifc_sdram_out sdram_out;
- `endif
`ifdef DDR
(*prefix="M_AXI"*) interface
AXI4_Master_IFC#(`PADDR, `DATA, `USERSPACE) master;
`endif
method Action boot_sequence(Bit#(1) bootseq) =
core.boot_sequence(bootseq);
- `ifdef SDRAM
- interface sdram_out=sdram.ifc_sdram_out;
- `endif
`ifdef DDR
interface master=fabric.v_to_slaves
[fromInteger(valueOf(Sdram_slave_num))];