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 | Im Selbsttest auf Atlys (can_test_atlys — app/selftest0)
|
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
|
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 |
|
timer_capture | ja | nein |
|
timer_compare | ja | nein |
|
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 |