Umstellen von Peripherie auf die neue Pipeline
Um eine bestehende Peripheriekomponente auf die neue Pipeline umzustellen muss der IO-Registerzugriff
neu implementiert werden. Bisher erfolgte der Zugriff für das Lesen und das Schreiben im 2. Takt der
Speicherbefehle. Da jetzt die Ausgaberegister aller Blockrams bestandteil der Pipeline sind, kann das
lesen von Speicherzellen und damit auch von IO-Registern erst im 3. Takt eines Speicherbefehls (l9 oder
l18) erfolgen. Dazu muss aber die Adresse einen Takt lang vorgehalten werden. Diese Funktion wird in der
Komponente
reg_access_decoder zur Verfügung gestellt. Die Verwendung dieser Komponente lässt
sich am einfachsten an einer der bereits umgestellten Peripherie nachvollziehen. Die explizite Verwendung
von
pselect ist nicht mehr erforderlich, da er bestandteil vom
reg_access_decoder ist.
Die Verwendung des
reg_access_decoder wird auf der Wiki-Seite
Dekodierung
der IO-Adressen für die neue Pipeline dargestellt und mit einem Beispiel genauer erläutert.
Status der einzelnen Peripheriegeräte
Gerät |
umgestellt |
getestet |
Bemerkung |
can |
ja |
ja |
auf Atlys mit PCAN Modul |
core_connector |
ja |
ja |
getestet von Marcel Jourdan 31.01.2014 |
ddr_mem_port |
nein |
nein |
|
display |
ja |
nein |
|
fifo |
nein |
nein |
|
heartbeat |
ja |
ja |
|
hw_acceleration |
ja |
ja |
|
i2c |
ja |
ja |
lesen und schreiben des EEPROM m24c08 auf dem ml507 Board und SpartanMC i2c-Slave |
intr_ctrl |
ja |
ja |
mit 20 aktiven IRQ getestet (Test 2) |
intr_ctrlp |
ja |
ja |
mit 20 aktiven IRQ getestet (geschachtelt) (Test 3) |
jtag_master |
ja |
ja |
|
microstepper |
ja |
ja |
Zur Zeit muss bei einer anderen CLK-Frequenz der ROM-Inhalt manuell ermittelt werden! |
port_bi |
ja |
(ja) ohne Interrupt |
(k1520mem — app/memrd)(foerderband4 — app/lcd) |
port_in_f |
ja |
ja |
3estkit/usb_2u_trt oder can_test_atlys |
port_in |
ja |
(ja) ohne Interrupt |
(k1520mem — app/memrd) |
port_out |
ja |
ja |
(k1520mem — app/memrd) |
rot_ta |
ja |
ja |
(Förderband4 — app/lcd_uhr)(test1_lcd_rotta_ml507 — app/lcd_uhr) |
rot_ta_vhdl |
nein |
nein |
|
segment_display |
ja |
nein |
|
shi |
nein |
nein |
Betrifft auch Fifo-basierten USB11-Contoller |
spi |
ja |
ja |
Ansteuerung OLED25664, EEPROM m25p32, DAC ltc2624 und SpartanMC SPI-Slave |
timer_capture |
ja |
nein |
|
timer_compare |
ja |
ja |
Türgong und Impulsbreitenmodulation |
timer |
ja |
ja |
(Test 1) |
timer_pulseacc |
ja |
nein |
|
timer_rti |
ja |
ja |
Vorteiler 2° ist jetzt nutzbar (test1_3estk) |
timer_watchdog |
ja |
ja |
(Förderband4 — app/wd_test) |
tpa |
nein |
nein |
|
uart |
ja |
ja |
(Test 1) |
uart_light |
ja |
ja |
(Test 1) |
ultrasonic |
nein |
nein |
|
usb11 |
ja |
ja |
3estkit/pp_speed und pp_speed_sp601 mit Ping Pong, Speed und Echo Test |