LimeSDR-Mini v2 (featuring Lattice FPGA) gateware project
Required tools and versions:
- Lattice Diamond 3.12 + SP1
- LatticeMico System for Diamond 3.12
Lattice Diamond project location:
./LimeSDR-Mini_lms7_trx/proj
There is no need to recompile Mico32 if changes are being done only in FPGA logic side. If there is a need to modify Mico32 platform or software follow steps below, otherwise skip to Compiling FPGA gateware part.
Import Mico32 project (has to be done once after cloning repo):
- Open LatticeMico System for Diamond (LMS)
- Import project File->Import...->Existing Project into Workspace from: ./LimeSDR-Mini_lms7_trx/mico32_sw
Regenerate Mico32 platform:
- Select platform editing LMS1.0 D3.11 perspective
- Open platform from ./LimeSDR-Mini_lms7_trx/mico32_patform/platform1/soc/platform1.msb
- Run DRC check Platform Tools -> Run DRC
- Regenerate platform files Platform Tools -> Run Generator
- Manually edit platform1_top.v file if new components are added or other changes are made
Compile Mico32 SW:
- Select software editing C/C++ perspective
- Right click on Project -> Clean Project
- Right click on Project -> Build project
- Select Tools -> Software Deployment...
- Create new setup by selecting "Mico32 On Chip Memory deployment"
- Deploy memory file into: ./LimeSDR-Mini_lms7_trx/mico32_sw/lms7_trx/lms7_trx.mem
- Open Lattice Diamond software and open File->Open->Project... project file from ./LimeSDR-Mini_lms7_trx/proj/lms7_trx.ldf
- Recompile project right click on Bitstram file->Rerun All in Process tab
- Open Tools -> ECO Editor and Select "Memory Initialization" tab
- Add LimeSDR-Mini_lms7_trx/mico32_sw/lms7_trx/lms7_trx.mem file to inst0_cpu/inst_cpu/lm32_inst/ebr/\genblk1.ram
- Update and Save
- Rerun only "Bitstream File" step
- Reprogram FPGA
SRAM programming:
- Open programmer setup file: ./LimeSDR-Mini_bitstreams/impl1_sram.xcf
- Select .bit file : ./LimeSDR-Mini_bitstreams/lms7_trx_impl1.bit
- Programm
FLASH programming:
First prgram bitstream file to enable background programming:
- Open programmer setup file: ./LimeSDR-Mini_bitstreams/impl1_sram.xcf;
- Select .bit file : ./LimeSDR-Mini_bitstreams/lms7_trx_preflash_gw.bit;
- Programm.
Program Flash:
- Open programmer setup file: ./LimeSDR-Mini_bitstreams/impl1_flash_dualboot.xcf;
- Select .mcs file : ./LimeSDR-Mini_bitstreams/lms7_trx_impl1_dualboot.mcs;
- Programm.
Updating FLASH programming file (.mcs) with new bitstream:
Use saved Deployment Tool setup file ./LimeSDR-Mini_bitstreams/LimeSDR_Mini_DualBoot_Flash_serial_deployment.ddt
Setup uses two bitstream files:
- Primary - ./LimeSDR-Mini_bitstreams/lms7_trx_impl1.bit
- Golden - ./LimeSDR-Mini_bitstreams/lms7_trx_impl1_golden.bit