LimeSDR FPGA upgrade to EP4CE115F23C8 (?)

Hi All,

As I noticed that the Blade RF SDR board has the option of using either the 40K ( EP4CE40F23C8) or 115K ( EP4CE115F23C8) Altera device, I would like to check if LimeSDR could be upgraded to the device EP4CE115F23C8 using hot air BGA reflowing?

I tried checking if EP4CE115F23 would need changes in the pin assignments but it seems that the top level entity is missing in the github repo, so I’m not sure if we can rebuild the FPGA project.

Has anyone investigated this and rebuilt the FPGA from github files successfully?

In the Altera setting file: https://github.com/myriadrf/LimeSDR-USB_GW/blob/master/LimeSDR-USB_lms7_trx.qsf

The top level and device information is:
set_global_assignment -name FAMILY “Cyclone IV E”
set_global_assignment -name DEVICE EP4CE40F23C8
set_global_assignment -name TOP_LEVEL_ENTITY lms7_trx_top
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 15.0.0

But I could not find the entity “lms7_trx_top” in the source files.

Could anyone check if github has all the RTL files to rebuild the FPGA?

Once I’m able to rebuild, I would like to check what is needed to port the Altera project to DEVICE EP4CE115F23C8.

Thanks, Rob KK6IOZ

The EP4CE115F23C8 has less I/O available to it than the 40k chip, so certain pins aren’t available to be used. Without checking what ones these were, I changed the compilation settings for the default gateware to that device and tried it.

I got the following errors during synthesis:
Error (171016): Can’t place node “FPGA_GPIO0” – illegal location assignment PIN_H8
Error (171016): Can’t place node “FPGA_GPIO4” – illegal location assignment PIN_G4
Error (171016): Can’t place node “FX3_CTL7” – illegal location assignment PIN_M7
Error (171016): Can’t place node “FX3_CTL1” – illegal location assignment PIN_L7
Error (171016): Can’t place node “FPGA_SPI1_SCLK” – illegal location assignment PIN_K8
Error (171016): Can’t place node “FPGA_SPI1_MOSI” – illegal location assignment PIN_L8
Error (171016): Can’t place node “FPGA_SPI1_ADF_SS” – illegal location assignment PIN_J5
Error (171016): Can’t place node “FX3_DQ[31]” – illegal location assignment PIN_N16
Error (171016): Can’t place node “FX3_DQ[30]” – illegal location assignment PIN_N17
Error (171016): Can’t place node “FX3_DQ[24]” – illegal location assignment PIN_P15
Error (171016): Can’t place node “FX3_DQ[23]” – illegal location assignment PIN_P16
Error (171016): Can’t place node “FX3_DQ[19]” – illegal location assignment PIN_R18
Error (171016): Can’t place node “FX3_DQ[12]” – illegal location assignment PIN_U19
Error (171016): Can’t place node “FX3_DQ[3]” – illegal location assignment PIN_Y21
Error (171016): Can’t place node “BRDG_SPI_FPGA_SS” – illegal location assignment PIN_K7
Error (171016): Can’t place node “FX3_CTL8” – illegal location assignment PIN_M8
Info (171121): Fitter preparation operations ending: elapsed time is 00:00:00
Error (171000): Can’t fit design in device
Error: Quartus Prime Fitter was unsuccessful. 17 errors, 4 warnings
Error: Peak virtual memory: 924 megabytes
Error: Processing ended: Sat Mar 25 23:57:21 2017
Error: Elapsed time: 00:00:12
Error: Total CPU time (on all processors): 00:00:10
Error (293001): Quartus Prime Full Compilation was unsuccessful. 19 errors, 82 warnings

Without going into what pins aren’t and are available, it seems at least these aren’t physically available on that package.

The EP4CE115F23 has only 4 user I/O pins less than EP4CE30/40 (528 vs 532), maybe a careful pin remapping for the 16 assignment errors would solve the problem (maybe also RTL change), but we would need to check the schematics and how the pin reassignments would work. I’m guessing that a similar approach may have been done in Blade RF 40x and x115.

I haven’t tried to rebuild the FPGA, let me try as well but we may need some support and guidance from the LimeSDR digital designers.

Wrong package. The chip on-board is F484. There are a max of 328 I/O to 280 I/O.

Thanks for the correction on the package.

Not a trivial remapping in fact. Maybe if we check how this was done in the Blade RF, we can get some hints.

Do you know if LimeSDR designers can get involved to provide some guidance for this experiment to comment whether it is doable with RTL/pin assignment changes or only possible with a board/design change?

The BladeRF designers had to have the 115k in mind when they designed their board, so as to not use any pins that aren’t completely shared between the 40k and 115k packages. In this case it seems critical I/O on the 40k package (FX3 databus and SPI lines) are mapped to pins that aren’t available on the 115k variant.

I’m not a FPGA expert but in the Quartus “Pin Planner”, there is a “Pin Migration Window”.

When I selected a migration for the project, the device EP4CE115F23C8 was considered a compatible migration. Then I noticed that the pins which caused errors in your compilation were either VCCINT or GND as below.

It looks like there might be a way and someone with expertise in Altera projects would recommend a migration plan. I will also check with some coworkers who might have expertise in this area of FPGA migration.

Just an update, I was able to synthesize the “original/unmodified” design successfully.

I had an initial issue because I was running with a newer Quartus version. The issue was resolved when running with version 15.1.

1 Like