Discussion:
configuring an Efinix T20
(too old to reply)
john larkin
2024-09-06 22:50:28 UTC
Permalink
I'm planning to use a Raspberry Pi RP2040 processor chip to configure
and then talk to an Efinix T20-FG256 FPGA.

Has anyone done this, or at least configured a T20 from a
microprocessor?

The RP2040 only has 30 GPIO pins, and many are dedicated to other
stuff, so we want to share a lot of things on one giant SPI bus,
including the FPGA config and then an SPI port on the FPGA to read and
write registers.

It looks like four of the T20 config pins need pullups. I wonder why
their guidelines show four separate resistors. Why not one resistor?
Why have resistors at all?

SS_N needs a pulldown. Why not ground it?

Loading Image...


It's always a moment to celebrate when a "config done" LED lights up.

I could easily get this wrong, so it would be great if I posted some
schematics and notes and someone could eyeball them for me.
John R Walliker
2024-09-07 14:19:59 UTC
Permalink
Post by john larkin
I'm planning to use a Raspberry Pi RP2040 processor chip to configure
and then talk to an Efinix T20-FG256 FPGA.
Has anyone done this, or at least configured a T20 from a
microprocessor?
The RP2040 only has 30 GPIO pins, and many are dedicated to other
stuff, so we want to share a lot of things on one giant SPI bus,
including the FPGA config and then an SPI port on the FPGA to read and
write registers.
It looks like four of the T20 config pins need pullups. I wonder why
their guidelines show four separate resistors. Why not one resistor?
Why have resistors at all?
SS_N needs a pulldown. Why not ground it?
https://www.dropbox.com/scl/fi/x0gvvwqg42vhryu6610ve/Efinix_Config_1.jpg?rlkey=udy24brtumvdzfd2sp4l6yhwf&raw=1
It's always a moment to celebrate when a "config done" LED lights up.
I could easily get this wrong, so it would be great if I posted some
schematics and notes and someone could eyeball them for me.
If you need some more i/o pins, why not use the RP2350B? They
definitely exist - I have one in front of me:
https://shop.pimoroni.com/products/pga2350?variant=42092629229651

John
john larkin
2024-09-07 15:58:02 UTC
Permalink
On Sat, 7 Sep 2024 15:19:59 +0100, John R Walliker
Post by John R Walliker
Post by john larkin
I'm planning to use a Raspberry Pi RP2040 processor chip to configure
and then talk to an Efinix T20-FG256 FPGA.
Has anyone done this, or at least configured a T20 from a
microprocessor?
The RP2040 only has 30 GPIO pins, and many are dedicated to other
stuff, so we want to share a lot of things on one giant SPI bus,
including the FPGA config and then an SPI port on the FPGA to read and
write registers.
It looks like four of the T20 config pins need pullups. I wonder why
their guidelines show four separate resistors. Why not one resistor?
Why have resistors at all?
SS_N needs a pulldown. Why not ground it?
https://www.dropbox.com/scl/fi/x0gvvwqg42vhryu6610ve/Efinix_Config_1.jpg?rlkey=udy24brtumvdzfd2sp4l6yhwf&raw=1
It's always a moment to celebrate when a "config done" LED lights up.
I could easily get this wrong, so it would be great if I posted some
schematics and notes and someone could eyeball them for me.
If you need some more i/o pins, why not use the RP2350B? They
https://shop.pimoroni.com/products/pga2350?variant=42092629229651
John
It only has two more package pins, as I recall. How many GPIOs?

It's new and a bit buggy and not widely available, so we'll stick with
the 2040. The only upsides are the higher clock rate and the faster
floats, which aren't critical in the product line that we are
developing now.

Why didn't they make it pin compatible, drop-in to the 2040? Why not
put in a mac/phy instead of the extra CPU cores?

Using one SPI bus for multiple loads will save pins. We should be able
to configure the FPGA and then read/write registers with a shared SPI
interface, and hit some other things too.

It might be tricky to share the interface to the WizNet ethernet chip,
and sharing the flash interface wires is something we don't want to
even think about.

Of course, once I have an FPGA, I'll have a zillion port pins
available.
John R Walliker
2024-09-07 18:29:41 UTC
Permalink
Post by john larkin
On Sat, 7 Sep 2024 15:19:59 +0100, John R Walliker
Post by John R Walliker
Post by john larkin
I'm planning to use a Raspberry Pi RP2040 processor chip to configure
and then talk to an Efinix T20-FG256 FPGA.
Has anyone done this, or at least configured a T20 from a
microprocessor?
The RP2040 only has 30 GPIO pins, and many are dedicated to other
stuff, so we want to share a lot of things on one giant SPI bus,
including the FPGA config and then an SPI port on the FPGA to read and
write registers.
It looks like four of the T20 config pins need pullups. I wonder why
their guidelines show four separate resistors. Why not one resistor?
Why have resistors at all?
SS_N needs a pulldown. Why not ground it?
https://www.dropbox.com/scl/fi/x0gvvwqg42vhryu6610ve/Efinix_Config_1.jpg?rlkey=udy24brtumvdzfd2sp4l6yhwf&raw=1
It's always a moment to celebrate when a "config done" LED lights up.
I could easily get this wrong, so it would be great if I posted some
schematics and notes and someone could eyeball them for me.
If you need some more i/o pins, why not use the RP2350B? They
https://shop.pimoroni.com/products/pga2350?variant=42092629229651
John
It only has two more package pins, as I recall. How many GPIOs?
No. The RP2354B has 24 more package pins and 18 more GPIOs than
the RP2040.

Its an 80-pin package with 48 GPIOs.
Post by john larkin
It's new and a bit buggy and not widely available, so we'll stick with
the 2040. The only upsides are the higher clock rate and the faster
floats, which aren't critical in the product line that we are
developing now.
Yes, there are some bugs. The most critical is probably the one
relating to on-chip pull-downs, but it can be solved with external
resistors. The ADC is improved. There are more and better
i/o state machines. There is a lot more on-chip RAM and there
will soon be the option of flash in the same package.
There may not be production quantities of the RP2354B readily
available yet, but there are certainly some around for prototypes.
As I mentioned, I have one.
Post by john larkin
Why didn't they make it pin compatible, drop-in to the 2040? Why not
put in a mac/phy instead of the extra CPU cores?
That would have been nice. However, I don't think the RISC-V added
any chip area as the design appears to be i/o bound.
Post by john larkin
Using one SPI bus for multiple loads will save pins. We should be able
to configure the FPGA and then read/write registers with a shared SPI
interface, and hit some other things too.
It might be tricky to share the interface to the WizNet ethernet chip,
and sharing the flash interface wires is something we don't want to
even think about.
Of course, once I have an FPGA, I'll have a zillion port pins
available.
john larkin
2024-09-09 19:20:24 UTC
Permalink
On Sat, 7 Sep 2024 19:29:41 +0100, John R Walliker
Post by John R Walliker
Post by john larkin
On Sat, 7 Sep 2024 15:19:59 +0100, John R Walliker
Post by John R Walliker
Post by john larkin
I'm planning to use a Raspberry Pi RP2040 processor chip to configure
and then talk to an Efinix T20-FG256 FPGA.
Has anyone done this, or at least configured a T20 from a
microprocessor?
The RP2040 only has 30 GPIO pins, and many are dedicated to other
stuff, so we want to share a lot of things on one giant SPI bus,
including the FPGA config and then an SPI port on the FPGA to read and
write registers.
It looks like four of the T20 config pins need pullups. I wonder why
their guidelines show four separate resistors. Why not one resistor?
Why have resistors at all?
SS_N needs a pulldown. Why not ground it?
https://www.dropbox.com/scl/fi/x0gvvwqg42vhryu6610ve/Efinix_Config_1.jpg?rlkey=udy24brtumvdzfd2sp4l6yhwf&raw=1
It's always a moment to celebrate when a "config done" LED lights up.
I could easily get this wrong, so it would be great if I posted some
schematics and notes and someone could eyeball them for me.
If you need some more i/o pins, why not use the RP2350B? They
https://shop.pimoroni.com/products/pga2350?variant=42092629229651
John
It only has two more package pins, as I recall. How many GPIOs?
No. The RP2354B has 24 more package pins and 18 more GPIOs than
the RP2040.
Its an 80-pin package with 48 GPIOs.
I was thinking about the RP2350, which has 60 pins. That's the chip on
the Pico 2.

I didn't even know that there was another small chip, the 2354B. That
might be the next step for our product line, in a year or two after
the new chips are debugged and available in quantity.

The 2350 data sheet is 1349 pages, possibly a world record.

I can't immediately find a data sheet for the 2354B.
Post by John R Walliker
Post by john larkin
It's new and a bit buggy and not widely available, so we'll stick with
the 2040. The only upsides are the higher clock rate and the faster
floats, which aren't critical in the product line that we are
developing now.
Yes, there are some bugs. The most critical is probably the one
relating to on-chip pull-downs, but it can be solved with external
resistors. The ADC is improved. There are more and better
i/o state machines. There is a lot more on-chip RAM and there
will soon be the option of flash in the same package.
There may not be production quantities of the RP2354B readily
available yet, but there are certainly some around for prototypes.
As I mentioned, I have one.
Does the 2350 have a switching regulator on-chip? Microns away from
the ADC?
piglet
2024-09-09 20:02:30 UTC
Permalink
Post by john larkin
On Sat, 7 Sep 2024 19:29:41 +0100, John R Walliker
Post by John R Walliker
Post by john larkin
On Sat, 7 Sep 2024 15:19:59 +0100, John R Walliker
Post by John R Walliker
Post by john larkin
I'm planning to use a Raspberry Pi RP2040 processor chip to configure
and then talk to an Efinix T20-FG256 FPGA.
Has anyone done this, or at least configured a T20 from a
microprocessor?
The RP2040 only has 30 GPIO pins, and many are dedicated to other
stuff, so we want to share a lot of things on one giant SPI bus,
including the FPGA config and then an SPI port on the FPGA to read and
write registers.
It looks like four of the T20 config pins need pullups. I wonder why
their guidelines show four separate resistors. Why not one resistor?
Why have resistors at all?
SS_N needs a pulldown. Why not ground it?
https://www.dropbox.com/scl/fi/x0gvvwqg42vhryu6610ve/Efinix_Config_1.jpg?rlkey=udy24brtumvdzfd2sp4l6yhwf&raw=1
It's always a moment to celebrate when a "config done" LED lights up.
I could easily get this wrong, so it would be great if I posted some
schematics and notes and someone could eyeball them for me.
If you need some more i/o pins, why not use the RP2350B? They
https://shop.pimoroni.com/products/pga2350?variant=42092629229651
John
It only has two more package pins, as I recall. How many GPIOs?
No. The RP2354B has 24 more package pins and 18 more GPIOs than
the RP2040.
Its an 80-pin package with 48 GPIOs.
I was thinking about the RP2350, which has 60 pins. That's the chip on
the Pico 2.
I didn't even know that there was another small chip, the 2354B. That
might be the next step for our product line, in a year or two after
the new chips are debugged and available in quantity.
The 2350 data sheet is 1349 pages, possibly a world record.
I can't immediately find a data sheet for the 2354B.
Post by John R Walliker
Post by john larkin
It's new and a bit buggy and not widely available, so we'll stick with
the 2040. The only upsides are the higher clock rate and the faster
floats, which aren't critical in the product line that we are
developing now.
Yes, there are some bugs. The most critical is probably the one
relating to on-chip pull-downs, but it can be solved with external
resistors. The ADC is improved. There are more and better
i/o state machines. There is a lot more on-chip RAM and there
will soon be the option of flash in the same package.
There may not be production quantities of the RP2354B readily
available yet, but there are certainly some around for prototypes.
As I mentioned, I have one.
Does the 2350 have a switching regulator on-chip? Microns away from
the ADC?
Yes, that’s the one where they found the inductor “polarity” mattered!
--
piglet
john larkin
2024-09-09 21:17:47 UTC
Permalink
On Mon, 9 Sep 2024 20:02:30 -0000 (UTC), piglet
Post by john larkin
On Sat, 7 Sep 2024 19:29:41 +0100, John R Walliker
Post by John R Walliker
Post by john larkin
On Sat, 7 Sep 2024 15:19:59 +0100, John R Walliker
Post by John R Walliker
Post by john larkin
I'm planning to use a Raspberry Pi RP2040 processor chip to configure
and then talk to an Efinix T20-FG256 FPGA.
Has anyone done this, or at least configured a T20 from a
microprocessor?
The RP2040 only has 30 GPIO pins, and many are dedicated to other
stuff, so we want to share a lot of things on one giant SPI bus,
including the FPGA config and then an SPI port on the FPGA to read and
write registers.
It looks like four of the T20 config pins need pullups. I wonder why
their guidelines show four separate resistors. Why not one resistor?
Why have resistors at all?
SS_N needs a pulldown. Why not ground it?
https://www.dropbox.com/scl/fi/x0gvvwqg42vhryu6610ve/Efinix_Config_1.jpg?rlkey=udy24brtumvdzfd2sp4l6yhwf&raw=1
It's always a moment to celebrate when a "config done" LED lights up.
I could easily get this wrong, so it would be great if I posted some
schematics and notes and someone could eyeball them for me.
If you need some more i/o pins, why not use the RP2350B? They
https://shop.pimoroni.com/products/pga2350?variant=42092629229651
John
It only has two more package pins, as I recall. How many GPIOs?
No. The RP2354B has 24 more package pins and 18 more GPIOs than
the RP2040.
Its an 80-pin package with 48 GPIOs.
I was thinking about the RP2350, which has 60 pins. That's the chip on
the Pico 2.
I didn't even know that there was another small chip, the 2354B. That
might be the next step for our product line, in a year or two after
the new chips are debugged and available in quantity.
The 2350 data sheet is 1349 pages, possibly a world record.
I can't immediately find a data sheet for the 2354B.
Post by John R Walliker
Post by john larkin
It's new and a bit buggy and not widely available, so we'll stick with
the 2040. The only upsides are the higher clock rate and the faster
floats, which aren't critical in the product line that we are
developing now.
Yes, there are some bugs. The most critical is probably the one
relating to on-chip pull-downs, but it can be solved with external
resistors. The ADC is improved. There are more and better
i/o state machines. There is a lot more on-chip RAM and there
will soon be the option of flash in the same package.
There may not be production quantities of the RP2354B readily
available yet, but there are certainly some around for prototypes.
As I mentioned, I have one.
Does the 2350 have a switching regulator on-chip? Microns away from
the ADC?
Yes, that’s the one where they found the inductor “polarity” mattered!
People add dithering noise and data lowpass filtering to improve ADC
linearity and resolution. Sounds like they included that for free.

(A clever pulse-height spectroscopy trick is to add known analog noise
to a signal, digitize, and digitally subtract it out later. Best of
both worlds.)
Lasse Langwadt
2024-09-11 22:44:35 UTC
Permalink
Post by john larkin
I'm planning to use a Raspberry Pi RP2040 processor chip to configure
and then talk to an Efinix T20-FG256 FPGA.
Has anyone done this, or at least configured a T20 from a
microprocessor?
The RP2040 only has 30 GPIO pins, and many are dedicated to other
stuff, so we want to share a lot of things on one giant SPI bus,
including the FPGA config and then an SPI port on the FPGA to read and
write registers.
It looks like four of the T20 config pins need pullups. I wonder why
their guidelines show four separate resistors. Why not one resistor?
Why have resistors at all?
SS_N needs a pulldown. Why not ground it?
seems like you don't need resistors,
https://www.efinixinc.com/docs/an006-configuring-trion-fpgas-v6.1.pdf
pages 10

"Set CBUS2, CBUS1, CBUS0, SS_N, and TEST_N using a pull-up or pull-down
resistor, or
drive them with an external active device."

and in some packages, page 8

"Important: The CCK pin in Q100F3 packages are only
available in user mode when the LVDS TX resources are
not in use. The CCK pin should not be toggled when any
LVDS TX is used."
Post by john larkin
https://www.dropbox.com/scl/fi/x0gvvwqg42vhryu6610ve/Efinix_Config_1.jpg?rlkey=udy24brtumvdzfd2sp4l6yhwf&raw=1
It's always a moment to celebrate when a "config done" LED lights up.
I could easily get this wrong, so it would be great if I posted some
schematics and notes and someone could eyeball them for me.
Loading...