[Libre-soc-bugs] [Bug 199] Layout using coriolis2 main core, 180nm
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Wed Sep 30 17:43:15 BST 2020
https://bugs.libre-soc.org/show_bug.cgi?id=199
--- Comment #84 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
Created attachment 108
--> https://bugs.libre-soc.org/attachment.cgi?id=108&action=edit
how jtag is organised
ok so here is how it is organised.
* the top level "core" is now called "ls180" where "test_issuer" contains
the PowerISA.
* ls180 contains:
- test_issuer
- JTAG
- Litex "stuff" mostly wishbone bus management and arbiters
- peripherals
* JTAG has three "things" it controls:
- IOPad testing
- DMI
- Wishbone
- (we may add PLL "counter" here although it will probably be part of Core)
* Litex provides peripherals however the IO for UART and GPIO need to
be routed *through JTAG*
* Therefore, there are some wires for UART distinguished by prefix
"_pads_" and "_core_" such as "uart_pads_tx" and "uart_core_rx" which
go **IN** to ls180 then come **OUT** of ls180
* these double-routed wires go SPECIFICALLY into the JTAG "IOPad testing"
side.
this is so that the JTAG core can "re-route" the IO Pads, taking them
AWAY from ls180 and SPECIFICALLY connecting them DIRECTLY to the
(real) actual IOPads through the Corona.
this is done with MUXes, and they are, strictly speaking, not part
of the "core".
although, if they are not, it would be a royal nuisance to have to
split them out into a separate file.
i *think*.... the main thing is that the JTAG clock should not be
associated with (connected to or controlled by) the pxlib "ck" lines
on the IO pads:
# this is good
p_sys_clk_0 : pck_px
port map ( pad => sys_clk
, ck => cki
, vdde => vdde
, vddi => vddi
, vsse => vsse
, vssi => vssi
);
# this is bad
p_jtag_tck : pi_px <- nooo! must be of type pck_px!
port map ( ck => cki <- baaaad, noooo!
, pad => jtag_tck
, t => jtag_tck_core
, vdde => vdde
, vddi => vddi
, vsse => vsse
, vssi => vssi
);
therefore if similar to this:
env.setCLOCK("sys_clk")
we could have:
env.setOUTSIDEOFCORONACLOCK("jtag_tck")
and it to be treated completely differently, then that would i think work.
we also would need some of the PLL clock wires similarly. we cannot
have them under the control of sys_clk.
is this unreasonably complex, to work out which clock is associated
with what, without splitting them into separate files?
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-soc-bugs
mailing list