RTLinux in an FPGA
Alejandro Lucero alucero@os3sl.com
www.os3sl.com
RTLinux in an FPGA Alejandro Lucero alucero@os3sl.com - - PowerPoint PPT Presentation
RTLinux in an FPGA Alejandro Lucero alucero@os3sl.com www.os3sl.com RTLinux in a FPGA 1. OpenRTU Project 2. FPGAs and soft processors 3. uClinux 4. RTLinux in Microblaze www.os3sl.com RTLinux in a FPGA 1. OpenRTU Project Spanish
Alejandro Lucero alucero@os3sl.com
www.os3sl.com
www.os3sl.com
2006)
www.os3sl.com
Building a new generation of RTUs (Remote Terminal Units) using FPGAs and Open Source.
www.os3sl.com
and RTLinux in Microblaze
achieved (Initially, 1ms)
www.os3sl.com
interconnects.
manufacturing process in the field
www.os3sl.com
VHDL code
verification tools
www.os3sl.com
design: libraries of predefined complex functions and circuits
processors
Microblaze (Xilinx), Nios (Altera), LatticeMico32
www.os3sl.com
www.os3sl.com
ARM7DMI, Intel i960, Blackfin, Microblaze, NEC V850
wireless routers, VoIP based telephones
www.os3sl.com
process can crash the system
www.os3sl.com
fork
www.os3sl.com
University in Australia
commercial products
Microblaze
www.os3sl.com
RTLinux: Linux is the idle task for RTLinux
www.os3sl.com
Virtualization technology is in fashion
www.os3sl.com
RTLinux Virtualization technology
www.os3sl.com
Microblaze done by John Williams in 2003
a 75Mhz soft processor running a GPOS?
www.os3sl.com
processor IP core implementation
when latencies were not as expected
www.os3sl.com
1) Interrupts virtualization layer 2) RTLinux microkernel
coexisting with uClinux kernel, we could just make use of the virtualization mechanism for a simple system executing critical code when an event raises an interrupt without uClinux interference
www.os3sl.com
showed latencies higher than expected
could be interfering with the results
full RTLinux microkernel working
introducing the delays
www.os3sl.com
RTLinux microkernel: threads creation and destruction, scheduling, timer programming (one shot and periodic) and threads synchronization and communication
specific part, and by independent architecture which will run without changes
www.os3sl.com
peak latencies higher than expected
we suspected OPB was introducing the delays
positive side, this was not a complete waste of time.
www.os3sl.com
configuration avoiding the execution of real time code from DRAM or SRAM
memories avoiding the peak latencies when the code had to go through the OPB
www.os3sl.com
www.os3sl.com
Drawbacks when using 1 cycle access memories
them for free.
www.os3sl.com
LMB was 16Kbytes (just 12Kbytes aligned)
➔ rtl.o:
8192 bytes (only code)
➔ rtl_time.o 2264 bytes (only code) ➔ rtl_sched.o
13692 bytes (only code)
www.os3sl.com
where "real" real time code is allocated
could be allocated in the LMB
www.os3sl.com
section was created in the elf kernel file for this code, and during the initialization it is copied to LMB
access, we did new tests and ...
www.os3sl.com
Technology was absolved. We had the real guilty:
The RTLinux Port Implementation was buggy
www.os3sl.com
Some problems hard to find:
clear_bit, test_and_set, test_and_clear, which need to disable interrupts.
latencies
www.os3sl.com
www.os3sl.com
Conclusions
performance
implementation is buggy, but we had some preconceived ideas...
using RTLinux and uClinux in Microblaze
www.os3sl.com
Alejandro Lucero alucero@os3sl.com
www.os3sl.com