Hallo. Ich versuche einen FSL Port zw. einem Microblaze und meiner FPGA Logik herzustellen. Das klappt soweit, nur fehlen mir die Signale FSL_S_DATA, FSL_M_DATA. Eigentlich alle Master und Slave Signale. die anderen sind vorhanden. Kann mir jemand weiterhelfen, bzw. was mache ich falsch. Hintergrund: Ich möchte den Microblaze mit Daten über meine FPGA Logik füttern und auch wieder Daten abholen. Hier ein Auszug auf meinem mhs File. PORT CLK = CLK, DIR = I, SIGIS = CLK, CLK_FREQ = 100000000 PORT FSL_S_Data = FSL_S_Data, DIR = I, VEC = [0:31], BUS = SFSL PORT fsl_v20_0_FSL_M_Clk_pin = fsl_v20_0_FSL_M_Clk, DIR = I PORT fsl_v20_0_FSL_S_Clk_pin = fsl_v20_0_FSL_S_Clk, DIR = I PORT fsl_v20_0_FSL_Full_pin = fsl_v20_0_FSL_Full, DIR = O, SIGIS = INTERRUPT, SENSITIVITY = LEVEL_HIGH PORT fsl_v20_0_FSL_Has_Data_pin = fsl_v20_0_FSL_Has_Data, DIR = O, SIGIS = INTERRUPT, SENSITIVITY = LEVEL_HIGH PORT fsl_v20_0_FSL_Control_IRQ_pin = fsl_v20_0_FSL_Control_IRQ, DIR = O, SIGIS = INTERRUPT, SENSITIVITY = LEVEL_HIGH ... BEGIN microblaze PARAMETER INSTANCE = microblaze_0 PARAMETER HW_VER = 8.20.a PARAMETER C_INTERCONNECT = 2 PARAMETER C_USE_BARREL = 1 PARAMETER C_USE_FPU = 2 PARAMETER C_DEBUG_ENABLED = 1 PARAMETER C_ICACHE_BASEADDR = 0X00000000 PARAMETER C_ICACHE_HIGHADDR = 0X3FFFFFFF PARAMETER C_USE_ICACHE = 0 PARAMETER C_ICACHE_ALWAYS_USED = 0 PARAMETER C_DCACHE_BASEADDR = 0X00000000 PARAMETER C_DCACHE_HIGHADDR = 0X3FFFFFFF PARAMETER C_USE_DCACHE = 0 PARAMETER C_DCACHE_ALWAYS_USED = 0 PARAMETER C_CACHE_BYTE_SIZE = 32768 PARAMETER C_ICACHE_LINE_LEN = 8 PARAMETER C_ICACHE_STREAMS = 1 PARAMETER C_ICACHE_VICTIMS = 8 PARAMETER C_DCACHE_BYTE_SIZE = 32768 PARAMETER C_DCACHE_LINE_LEN = 8 PARAMETER C_DCACHE_USE_WRITEBACK = 1 PARAMETER C_DCACHE_VICTIMS = 8 PARAMETER C_USE_HW_MUL = 2 PARAMETER C_USE_DIV = 1 PARAMETER C_USE_BRANCH_TARGET_CACHE = 1 PARAMETER C_FSL_LINKS = 1 BUS_INTERFACE M_AXI_DP = axi4lite_0 BUS_INTERFACE DEBUG = microblaze_0_debug BUS_INTERFACE DLMB = microblaze_0_dlmb BUS_INTERFACE ILMB = microblaze_0_ilmb BUS_INTERFACE SFSL0 = fsl_v20_0 BUS_INTERFACE MFSL0 = fsl_v20_0 PORT MB_RESET = proc_sys_reset_0_MB_Reset PORT CLK = clk_100_0000MHz END ... BEGIN fsl_v20 PARAMETER INSTANCE = fsl_v20_0 PARAMETER HW_VER = 2.11.e PORT FSL_Clk = clk_100_0000MHz PORT SYS_Rst = proc_sys_reset_0_BUS_STRUCT_RESET PORT FSL_M_Clk = fsl_v20_0_FSL_M_Clk PORT FSL_S_Clk = fsl_v20_0_FSL_S_Clk PORT FSL_Full = fsl_v20_0_FSL_Full PORT FSL_Has_Data = fsl_v20_0_FSL_Has_Data PORT FSL_Control_IRQ = fsl_v20_0_FSL_Control_IRQ END Danke. noeppkes ...
Hallo. Die eine Seite an den Microblaze. Die andere Seite möchte ich komplett extern legen. Das heisst zur FPGA Logik hin. Hab ich da was übersehen? noeppkes ....
Hallo. Bin in der Zwischenzeit ein ganz Stück weiter gekommen. Habe den Auszug vom fsl_v20_v2_1_0.mpd Dabei ist mir aufgefallen, dass ich nur die Signale im XPS sehen kann, welche ein von mir hintendran gesetztes OK haben. Alle Signale mit OK haben nach dem Namen ein = "" Was ist hierfür der Grund? Habe jetzt bei allen auch ein "" dahinter gesetzt. Nun sind die Signale im XPS verfügbar und ich kann sie extern legen? Kann mir das jemand erklären? Vorher: ## Ports PORT FSL_Clk = "", DIR = I, SIGIS = CLK # OK PORT SYS_Rst = "", DIR = I # OK PORT FSL_Rst = LMB_Rst, DIR = O # LMD_Rst ersetzen durch "" PORT FSL_M_Clk = "", DIR = I # OK PORT FSL_M_Data = FSL_M_Data, DIR = I, VEC = [0:C_FSL_DWIDTH-1] # dito PORT FSL_M_Control = FSL_M_Control, DIR = I # dito PORT FSL_M_Write = FSL_M_Write, DIR = I # dito PORT FSL_M_Full = FSL_M_Full, DIR = O # dito PORT FSL_S_Clk = "", DIR = I # OK PORT FSL_S_Data = FSL_S_Data, DIR = O, VEC = [0:C_FSL_DWIDTH-1] # dito PORT FSL_S_Control = FSL_S_Control, DIR = O # dito PORT FSL_S_Read = FSL_S_Read, DIR = I # dito PORT FSL_S_Exists = FSL_S_Exists, DIR = O # dito PORT FSL_Full = "", DIR = O, SIGIS = INTERRUPT, SENSITIVITY = LEVEL_HIGH # OK PORT FSL_Has_Data = "", DIR = O, SIGIS = INTERRUPT, SENSITIVITY = LEVEL_HIGH # OK PORT FSL_Control_IRQ = "", DIR = O, SIGIS = INTERRUPT, SENSITIVITY = LEVEL_HIGH # OK END Nachher: ## Ports PORT FSL_Clk = "", DIR = I, SIGIS = CLK PORT SYS_Rst = "", DIR = I PORT FSL_Rst = "", DIR = O PORT FSL_M_Clk = "", DIR = I PORT FSL_M_Data = "", DIR = I, VEC = [0:C_FSL_DWIDTH-1] PORT FSL_M_Control = "", DIR = I PORT FSL_M_Write = "", DIR = I PORT FSL_M_Full = "", DIR = O PORT FSL_S_Clk = "", DIR = I PORT FSL_S_Data = "", DIR = O, VEC = [0:C_FSL_DWIDTH-1] PORT FSL_S_Control = "", DIR = O PORT FSL_S_Read = "", DIR = I PORT FSL_S_Exists = "", DIR = O PORT FSL_Full = "", DIR = O, SIGIS = INTERRUPT, SENSITIVITY = LEVEL_HIGH PORT FSL_Has_Data = "", DIR = O, SIGIS = INTERRUPT, SENSITIVITY = LEVEL_HIGH PORT FSL_Control_IRQ = "", DIR = O, SIGIS = INTERRUPT, SENSITIVITY = LEVEL_HIGH END
Nachtrag. Sobald man das geändert und gespeichert hat, dann im Menü den Punkt: Projekt--> Rescan User Respoitories aufrufen. Dann erscheinen die Signale. noeppkes ...
Christian Armbruster schrieb: > Hab ich da was übersehen? Anscheinend muss man kleines IP core erstellen. http://blog.fpganotes.com/2011/05/how-to-make-fsl-ports-external
:
Bearbeitet durch User
Hallo. Ich denke auch, dass man einen kleinen IP-Core erzeugen muss. Habe es aber bisher noch nicht geschafft. Selbst nicht mit dem IP-Core aus dem Blog. (Link siehe oben von Klaus) Kann jemand mal einen ScreenShot von der XPS posten um zu sehen wie das alles "verdrahtet" ist. Das mit dem Blog hat nur teilweise geklappt. Ich habe weiterhin nicht die richtigen Signale zu meinem VHDL Design hin. Nochmal kurz was ich möchte: FSL Anbindung zw. dem Microblaze und meinem VHDL Design in beide Richtungen. Meine beiden Screenshots sind im Anhang: noeppkes ...
Warum verwendest Du nicht den Create IP wizard? Der sollte FSL angeschlossene IP unterstützen. Willst Du eigentlich die FSL Signale aus dem EDK Design über external Ports ganz nach außen führen oder kannst Du deine Logik in ein IP einbauen? In ersten Fall brauchst Du ein IP, das die FSL Signale einfach nur weiterleitet, so wie dieses fsl_ex_port, aber im MPD File muss man anscheinend die Zuweisungen entfernen, dann tauchen die Ports unter fsl_ex_port_0 auf und man kann sie external machen. PORT o_FSL_S_Read = "", DIR=I PORT o_FSL_S_Data = "" , DIR=O, VEC=[0:31] PORT o_FSL_S_Control = "", DIR=O PORT o_FSL_S_Exists = "", DIR=O PORT o_FSL_M_Write = "", DIR=I PORT o_FSL_M_Data = "", DIR=I, VEC=[0:31] PORT o_FSL_M_Control = "", DIR=I PORT o_FSL_M_Full = "", DIR=O Aber in diesem Fall existiert Deine Logik außerhalb des EDK Designs und Du brauchst ein neues Top Level design das dein MB Projekt und dein, an FSL angeschlossenes Design verwendet. Einfacher ist möglicherweise die Erstellung eines Custom IPs mit FSL anschluss, das deine Logik enthält. Dann bleibt das EDK weiterhin dein Top-Level Design.
Hallo. Habe deinen Link befolgt und den schon generierten Custom IP eingesetzt. http://blog.fpganotes.com/2011/05/how-to-make-fsl-... Alles korrekt verdrahtet. Lässt sich übersetzen. XPS, SDK und ISE meldet keinen Fehler. Jetzt schreibe ich mit dem Microblaze in die FSL. Einerseits über FSL_DEFAULT, und FSL_NONBLOCKING. Beides scheint zu funktionieren. Sobald ich die FIFo mit FSL_DEFAULT überschriebe, bleibt der Microblaze auch stehen. Mit FSL_NONBLOCKING kann ich ohne Ende schreiben. Alles korrekt so. Anhand dessen kann man doch schon einmal sagen, dass die FSL Verbindung vorhanden sein müsste und auch funktioniert. Aber: Nach den ersten Schreibbefehl sollte doch das Signal ... exists auf der FSL FIFO Slave-Seite nach 1 wechseln. Auch das Signal im Master FSL ...HAS_DATA wechselt nicht auf 1. Ich hole definitiv keine Daten an der Slave-Seite ab. Hab das Read fest auf 0 verdrahtet. Ach ja. Habe alles am MicroBlaze Takt von 100 Mhz hängen. Die FSL FiFo soll Asynchron laufen. Muss ich die FSL schneller takten ? Ich bin mir nun auch nicht mehr ganz sicher ob die FSL-Verbinung vom Microblaze zur FSL FiFo richtig ist und so funktioniert. Im XPS wird sie auf jeden fall mal grafisch angezeigt. Hier mein MHS-File und im Anhang noch 2 Bilder vom XPS. Vielleicht kann jemand was erkennen und mir weiterhelfen. Danke. noeppkes ... # ######################################################################## ###### # Created by Base System Builder Wizard for Xilinx EDK 13.2 Build EDK_O.61xd # Fri Oct 18 11:55:36 2013 # Target Board: Custom # Family: spartan6 # Device: xc6slx45 # Package: fgg484 # Speed Grade: -3 # ######################################################################## ###### PARAMETER VERSION = 2.1.0 # Bus Interfaces PORT SPI_FLASH_SS = SPI_FLASH_SS, DIR = IO PORT SPI_FLASH_SCLK = SPI_FLASH_SCLK, DIR = IO PORT SPI_FLASH_MOSI = SPI_FLASH_MOSI, DIR = IO PORT SPI_FLASH_MISO = SPI_FLASH_MISO, DIR = IO PORT RESET = RESET, DIR = I, SIGIS = RST, RST_POLARITY = 0 PORT RESET_N = RESET_N, DIR = I, SIGIS = RST, RST_POLARITY = 1 PORT RESET_FSL = RESET_FSL, DIR = I, SIGIS = RST, RST_POLARITY = 0 PORT LEDS_TRI_O = LEDS_TRI_O, DIR = O, VEC = [0:7] PORT CLK = CLK, DIR = I, SIGIS = CLK, CLK_FREQ = 100000000 PORT fsl_ex_ports_0_o_FSL_M_Write_pin = fsl_ex_ports_0_o_FSL_M_Write, DIR = I PORT fsl_ex_ports_0_o_FSL_M_Data_pin = fsl_ex_ports_0_o_FSL_M_Data, DIR = I, VEC = [0:31] PORT fsl_ex_ports_0_o_FSL_M_Control_pin = fsl_ex_ports_0_o_FSL_M_Control, DIR = I PORT fsl_ex_ports_0_o_FSL_M_Full_pin = fsl_ex_ports_0_o_FSL_M_Full, DIR = O PORT fsl_ex_ports_1_o_FSL_S_Read_pin = fsl_ex_ports_1_o_FSL_S_Read, DIR = I PORT fsl_ex_ports_1_o_FSL_S_Data_pin = fsl_ex_ports_1_o_FSL_S_Data, DIR = O, VEC = [0:31] PORT fsl_ex_ports_1_o_FSL_S_Control_pin = fsl_ex_ports_1_o_FSL_S_Control, DIR = O PORT fsl_ex_ports_1_o_FSL_S_Exists_pin = fsl_ex_ports_1_o_FSL_S_Exists, DIR = O PORT microblaze_0_to_fsl_ex_ports_1_FSL_Has_Data_pin = microblaze_0_to_fsl_ex_ports_1_FSL_Has_Data, DIR = O, SIGIS = INTERRUPT, SENSITIVITY = LEVEL_HIGH # PORT CLK_P = CLK, DIR = I, DIFFERENTIAL_POLARITY = P, SIGIS = CLK, CLK_FREQ = 100000000 # PORT CLK_N = CLK, DIR = I, DIFFERENTIAL_POLARITY = N, SIGIS = CLK, CLK_FREQ = 100000000 BEGIN proc_sys_reset PARAMETER INSTANCE = proc_sys_reset_0 PARAMETER HW_VER = 3.00.a PARAMETER C_EXT_RESET_HIGH = 0 PORT MB_Debug_Sys_Rst = proc_sys_reset_0_MB_Debug_Sys_Rst PORT Dcm_locked = proc_sys_reset_0_Dcm_locked PORT MB_Reset = proc_sys_reset_0_MB_Reset PORT Slowest_sync_clk = clk_100_0000MHz PORT Interconnect_aresetn = proc_sys_reset_0_Interconnect_aresetn PORT Ext_Reset_In = RESET PORT BUS_STRUCT_RESET = proc_sys_reset_0_BUS_STRUCT_RESET END BEGIN lmb_v10 PARAMETER INSTANCE = microblaze_0_ilmb PARAMETER HW_VER = 2.00.b PORT SYS_RST = proc_sys_reset_0_BUS_STRUCT_RESET PORT LMB_CLK = clk_100_0000MHz END BEGIN lmb_bram_if_cntlr PARAMETER INSTANCE = microblaze_0_i_bram_ctrl PARAMETER HW_VER = 3.00.b PARAMETER C_BASEADDR = 0x00000000 PARAMETER C_HIGHADDR = 0x00001fff BUS_INTERFACE SLMB = microblaze_0_ilmb BUS_INTERFACE BRAM_PORT = microblaze_0_i_bram_ctrl_2_microblaze_0_bram_block END BEGIN lmb_v10 PARAMETER INSTANCE = microblaze_0_dlmb PARAMETER HW_VER = 2.00.b PORT SYS_RST = proc_sys_reset_0_BUS_STRUCT_RESET PORT LMB_CLK = clk_100_0000MHz END BEGIN lmb_bram_if_cntlr PARAMETER INSTANCE = microblaze_0_d_bram_ctrl PARAMETER HW_VER = 3.00.b PARAMETER C_BASEADDR = 0x00000000 PARAMETER C_HIGHADDR = 0x00001fff BUS_INTERFACE SLMB = microblaze_0_dlmb BUS_INTERFACE BRAM_PORT = microblaze_0_d_bram_ctrl_2_microblaze_0_bram_block END BEGIN bram_block PARAMETER INSTANCE = microblaze_0_bram_block PARAMETER HW_VER = 1.00.a BUS_INTERFACE PORTA = microblaze_0_i_bram_ctrl_2_microblaze_0_bram_block BUS_INTERFACE PORTB = microblaze_0_d_bram_ctrl_2_microblaze_0_bram_block END BEGIN microblaze PARAMETER INSTANCE = microblaze_0 PARAMETER HW_VER = 8.20.a PARAMETER C_INTERCONNECT = 2 PARAMETER C_USE_BARREL = 1 PARAMETER C_USE_FPU = 2 PARAMETER C_DEBUG_ENABLED = 1 PARAMETER C_ICACHE_BASEADDR = 0X00000000 PARAMETER C_ICACHE_HIGHADDR = 0X3FFFFFFF PARAMETER C_USE_ICACHE = 1 PARAMETER C_ICACHE_ALWAYS_USED = 0 PARAMETER C_DCACHE_BASEADDR = 0X00000000 PARAMETER C_DCACHE_HIGHADDR = 0X3FFFFFFF PARAMETER C_USE_DCACHE = 1 PARAMETER C_DCACHE_ALWAYS_USED = 1 PARAMETER C_CACHE_BYTE_SIZE = 16384 PARAMETER C_ICACHE_LINE_LEN = 8 PARAMETER C_ICACHE_STREAMS = 1 PARAMETER C_ICACHE_VICTIMS = 8 PARAMETER C_DCACHE_BYTE_SIZE = 16384 PARAMETER C_DCACHE_LINE_LEN = 8 PARAMETER C_DCACHE_USE_WRITEBACK = 1 PARAMETER C_DCACHE_VICTIMS = 8 PARAMETER C_USE_HW_MUL = 2 PARAMETER C_USE_DIV = 1 PARAMETER C_USE_BRANCH_TARGET_CACHE = 1 PARAMETER C_FSL_LINKS = 1 PARAMETER C_INTERCONNECT_M_AXI_DP_WRITE_FIFO_DEPTH = 32 PARAMETER C_INTERCONNECT_M_AXI_DP_READ_FIFO_DEPTH = 32 PARAMETER C_DCACHE_FORCE_TAG_LUTRAM = 1 BUS_INTERFACE M_AXI_DP = axi4lite_0 BUS_INTERFACE DEBUG = microblaze_0_debug BUS_INTERFACE SFSL0 = microblaze_0_to_fsl_ex_ports_1 BUS_INTERFACE DLMB = microblaze_0_dlmb BUS_INTERFACE ILMB = microblaze_0_ilmb BUS_INTERFACE MFSL0 = fsl_ex_ports_1_to_microblaze_0 PORT MB_RESET = proc_sys_reset_0_MB_Reset PORT CLK = clk_100_0000MHz END BEGIN mdm PARAMETER INSTANCE = debug_module PARAMETER HW_VER = 2.00.b PARAMETER C_INTERCONNECT = 2 PARAMETER C_USE_UART = 1 PARAMETER C_BASEADDR = 0x74800000 PARAMETER C_HIGHADDR = 0x7480ffff BUS_INTERFACE S_AXI = axi4lite_0 BUS_INTERFACE MBDEBUG_0 = microblaze_0_debug PORT Debug_SYS_Rst = proc_sys_reset_0_MB_Debug_Sys_Rst PORT S_AXI_ACLK = clk_100_0000MHz END BEGIN clock_generator PARAMETER INSTANCE = clock_generator_0 PARAMETER HW_VER = 4.02.a PARAMETER C_CLKIN_FREQ = 100000000 PARAMETER C_CLKOUT0_FREQ = 100000000 PARAMETER C_CLKOUT0_GROUP = NONE PORT LOCKED = proc_sys_reset_0_Dcm_locked PORT CLKOUT0 = clk_100_0000MHz PORT RST = RESET_N PORT CLKIN = CLK END BEGIN axi_interconnect PARAMETER INSTANCE = axi4lite_0 PARAMETER HW_VER = 1.03.a PARAMETER C_INTERCONNECT_CONNECTIVITY_MODE = 0 PORT interconnect_aclk = clk_100_0000MHz PORT INTERCONNECT_ARESETN = proc_sys_reset_0_Interconnect_aresetn END BEGIN axi_gpio PARAMETER INSTANCE = LEDS PARAMETER HW_VER = 1.01.a PARAMETER C_GPIO_WIDTH = 8 PARAMETER C_ALL_INPUTS = 0 PARAMETER C_INTERRUPT_PRESENT = 0 PARAMETER C_IS_DUAL = 0 PARAMETER C_BASEADDR = 0x40000000 PARAMETER C_HIGHADDR = 0x4000ffff BUS_INTERFACE S_AXI = axi4lite_0 PORT S_AXI_ACLK = clk_100_0000MHz PORT GPIO_IO_O = LEDS_TRI_O END BEGIN axi_spi PARAMETER INSTANCE = Generic_SPI PARAMETER HW_VER = 1.01.a PARAMETER C_BASEADDR = 0x40a00000 PARAMETER C_HIGHADDR = 0x40a0ffff BUS_INTERFACE S_AXI = axi4lite_0 PORT S_AXI_ACLK = clk_100_0000MHz PORT SS = SPI_FLASH_SS PORT SCK = SPI_FLASH_SCLK PORT MOSI = SPI_FLASH_MOSI PORT MISO = SPI_FLASH_MISO PORT SPISEL = net_vcc END BEGIN fsl_ex_ports PARAMETER INSTANCE = fsl_ex_ports_0 PARAMETER HW_VER = 1.00.a BUS_INTERFACE SFSL = fsl_ex_ports_1_to_microblaze_0 PORT o_FSL_M_Write = fsl_ex_ports_0_o_FSL_M_Write PORT o_FSL_M_Data = fsl_ex_ports_0_o_FSL_M_Data PORT o_FSL_M_Control = fsl_ex_ports_0_o_FSL_M_Control PORT o_FSL_M_Full = fsl_ex_ports_0_o_FSL_M_Full END BEGIN fsl_v20 PARAMETER INSTANCE = fsl_ex_ports_1_to_microblaze_0 PARAMETER HW_VER = 2.11.e PARAMETER C_EXT_RESET_HIGH = 0 PARAMETER C_ASYNC_CLKS = 1 PARAMETER C_FSL_DEPTH = 512 PARAMETER C_READ_CLOCK_PERIOD = 10 PARAMETER C_IMPL_STYLE = 1 PORT FSL_Clk = clk_100_0000MHz PORT SYS_Rst = RESET_FSL PORT FSL_M_Clk = clk_100_0000MHz PORT FSL_S_Clk = clk_100_0000MHz END BEGIN fsl_ex_ports PARAMETER INSTANCE = fsl_ex_ports_1 PARAMETER HW_VER = 1.00.a BUS_INTERFACE MFSL = microblaze_0_to_fsl_ex_ports_1 PORT o_FSL_S_Read = fsl_ex_ports_1_o_FSL_S_Read PORT o_FSL_S_Data = fsl_ex_ports_1_o_FSL_S_Data PORT o_FSL_S_Control = fsl_ex_ports_1_o_FSL_S_Control PORT o_FSL_S_Exists = fsl_ex_ports_1_o_FSL_S_Exists END BEGIN fsl_v20 PARAMETER INSTANCE = microblaze_0_to_fsl_ex_ports_1 PARAMETER HW_VER = 2.11.e PARAMETER C_EXT_RESET_HIGH = 0 PARAMETER C_ASYNC_CLKS = 1 PARAMETER C_FSL_DEPTH = 512 PARAMETER C_READ_CLOCK_PERIOD = 10 PARAMETER C_IMPL_STYLE = 1 PORT FSL_Clk = clk_100_0000MHz PORT SYS_Rst = RESET_FSL PORT FSL_M_Clk = clk_100_0000MHz PORT FSL_S_Clk = clk_100_0000MHz PORT FSL_Has_Data = microblaze_0_to_fsl_ex_ports_1_FSL_Has_Data END
Ohne mich jetzt durch das MHS File durchgebissen zu haben, fällt mir nur auf, dass der Microblaze als Master auf den bus fsl_ex_port_1_to_microblaze_0 schreibt, dieser Bus aber an fsl_ex_port_0 angeschlossen ist. Diese Einheit ist korrekterweise der Slave, aber an die Slave Signale hast Du dort nicht angeschlossen. Meiner Meinung musst Du dort die Daten abholen.
Klaus Falser schrieb: > Ohne mich jetzt durch das MHS File durchgebissen zu haben, fällt mir nur > auf, dass der Microblaze als Master auf den bus > fsl_ex_port_1_to_microblaze_0 schreibt, dieser Bus aber an fsl_ex_port_0 > angeschlossen ist. Diese Einheit ist korrekterweise der Slave, aber an > die Slave Signale hast Du dort nicht angeschlossen. Meiner Meinung musst > Du dort die Daten abholen. Hallo. Bin jetzt leicht irritiert. Ich habe die Verbindung MFSL0 zu fsl_ex_port_1_to_microblaze_0 (fsl_ex_ports_0, Slave Seite). Das sollte doch der FSL Bus vom MB sein, der mir in die FiFo schreibt. Da die Verbindung eingezeichnet ist, gehe ich davon aus dass alle Verbindungen zw. dem Microblaze und der FiFo existieren. Die Daten hole ich dann aus dem Master dieser FiFo (fsl_ex_ports_0) ab. All diese Signale habe ich ja auch "external" (unter Ports) gelegt. Und genau davon toggelt kein eiziges. Wie sollte es deiner Meinung nach aussehen? noeppkes ...
Hallo Klaus. Danke für den Hinweis. Bin jetzt dahinter gekommen. Der Fehler war dass ich den User IP einmal selbst hinzugefügt habe und dann och einmal im Menü mit: Hardware --> Configure Coprozessor ... Deswegen war er 2 mal vorhanden und dann falsch angeschlossen. Jetzt funktioniert es. Vielen Dank für die nützlichen Hinweise. Ich poste gleich noch 2 Bilder, damit auch andere sehen, wie FSL als "external" richtig eingesetzt wird. noeppkes ...
Hallo. Hier die versprochenen 2 Bilder. Und auch noch das MHS File. # ######################################################################## ###### # Created by Base System Builder Wizard for Xilinx EDK 13.2 Build EDK_O.61xd # Fri Oct 18 11:55:36 2013 # Target Board: Custom # Family: spartan6 # Device: xc6slx45 # Package: fgg484 # Speed Grade: -3 # ######################################################################## ###### PARAMETER VERSION = 2.1.0 # Bus Interfaces PORT SPI_FLASH_SS = SPI_FLASH_SS, DIR = IO PORT SPI_FLASH_SCLK = SPI_FLASH_SCLK, DIR = IO PORT SPI_FLASH_MOSI = SPI_FLASH_MOSI, DIR = IO PORT SPI_FLASH_MISO = SPI_FLASH_MISO, DIR = IO PORT RESET = RESET, DIR = I, SIGIS = RST, RST_POLARITY = 0 PORT RESET_N = RESET_N, DIR = I, SIGIS = RST, RST_POLARITY = 1 PORT LEDS_TRI_O = LEDS_TRI_O, DIR = O, VEC = [0:7] PORT CLK = CLK, DIR = I, SIGIS = CLK, CLK_FREQ = 100000000 PORT fsl_ex_ports_0_o_FSL_S_Read_pin = fsl_ex_ports_0_o_FSL_S_Read, DIR = I PORT fsl_ex_ports_0_o_FSL_S_Data_pin = fsl_ex_ports_0_o_FSL_S_Data, DIR = O, VEC = [0:31] PORT fsl_ex_ports_0_o_FSL_S_Control_pin = fsl_ex_ports_0_o_FSL_S_Control, DIR = O PORT fsl_ex_ports_0_o_FSL_S_Exists_pin = fsl_ex_ports_0_o_FSL_S_Exists, DIR = O PORT fsl_ex_ports_0_o_FSL_M_Write_pin = fsl_ex_ports_0_o_FSL_M_Write, DIR = I PORT fsl_ex_ports_0_o_FSL_M_Data_pin = fsl_ex_ports_0_o_FSL_M_Data, DIR = I, VEC = [0:31] PORT fsl_ex_ports_0_o_FSL_M_Control_pin = fsl_ex_ports_0_o_FSL_M_Control, DIR = I PORT fsl_ex_ports_0_o_FSL_M_Full_pin = fsl_ex_ports_0_o_FSL_M_Full, DIR = O # PORT CLK_P = CLK, DIR = I, DIFFERENTIAL_POLARITY = P, SIGIS = CLK, CLK_FREQ = 100000000 # PORT CLK_N = CLK, DIR = I, DIFFERENTIAL_POLARITY = N, SIGIS = CLK, CLK_FREQ = 100000000 BEGIN proc_sys_reset PARAMETER INSTANCE = proc_sys_reset_0 PARAMETER HW_VER = 3.00.a PARAMETER C_EXT_RESET_HIGH = 0 PORT MB_Debug_Sys_Rst = proc_sys_reset_0_MB_Debug_Sys_Rst PORT Dcm_locked = proc_sys_reset_0_Dcm_locked PORT MB_Reset = proc_sys_reset_0_MB_Reset PORT Slowest_sync_clk = clk_100_0000MHz PORT Interconnect_aresetn = proc_sys_reset_0_Interconnect_aresetn PORT Ext_Reset_In = RESET PORT BUS_STRUCT_RESET = proc_sys_reset_0_BUS_STRUCT_RESET END BEGIN lmb_v10 PARAMETER INSTANCE = microblaze_0_ilmb PARAMETER HW_VER = 2.00.b PORT SYS_RST = proc_sys_reset_0_BUS_STRUCT_RESET PORT LMB_CLK = clk_100_0000MHz END BEGIN lmb_bram_if_cntlr PARAMETER INSTANCE = microblaze_0_i_bram_ctrl PARAMETER HW_VER = 3.00.b PARAMETER C_BASEADDR = 0x00000000 PARAMETER C_HIGHADDR = 0x00001fff BUS_INTERFACE SLMB = microblaze_0_ilmb BUS_INTERFACE BRAM_PORT = microblaze_0_i_bram_ctrl_2_microblaze_0_bram_block END BEGIN lmb_v10 PARAMETER INSTANCE = microblaze_0_dlmb PARAMETER HW_VER = 2.00.b PORT SYS_RST = proc_sys_reset_0_BUS_STRUCT_RESET PORT LMB_CLK = clk_100_0000MHz END BEGIN lmb_bram_if_cntlr PARAMETER INSTANCE = microblaze_0_d_bram_ctrl PARAMETER HW_VER = 3.00.b PARAMETER C_BASEADDR = 0x00000000 PARAMETER C_HIGHADDR = 0x00001fff BUS_INTERFACE SLMB = microblaze_0_dlmb BUS_INTERFACE BRAM_PORT = microblaze_0_d_bram_ctrl_2_microblaze_0_bram_block END BEGIN bram_block PARAMETER INSTANCE = microblaze_0_bram_block PARAMETER HW_VER = 1.00.a BUS_INTERFACE PORTA = microblaze_0_i_bram_ctrl_2_microblaze_0_bram_block BUS_INTERFACE PORTB = microblaze_0_d_bram_ctrl_2_microblaze_0_bram_block END BEGIN microblaze PARAMETER INSTANCE = microblaze_0 PARAMETER HW_VER = 8.20.a PARAMETER C_INTERCONNECT = 2 PARAMETER C_USE_BARREL = 1 PARAMETER C_USE_FPU = 2 PARAMETER C_DEBUG_ENABLED = 1 PARAMETER C_ICACHE_BASEADDR = 0X00000000 PARAMETER C_ICACHE_HIGHADDR = 0X3FFFFFFF PARAMETER C_USE_ICACHE = 0 PARAMETER C_ICACHE_ALWAYS_USED = 0 PARAMETER C_DCACHE_BASEADDR = 0X00000000 PARAMETER C_DCACHE_HIGHADDR = 0X3FFFFFFF PARAMETER C_USE_DCACHE = 0 PARAMETER C_DCACHE_ALWAYS_USED = 1 PARAMETER C_CACHE_BYTE_SIZE = 16384 PARAMETER C_ICACHE_LINE_LEN = 8 PARAMETER C_ICACHE_STREAMS = 1 PARAMETER C_ICACHE_VICTIMS = 8 PARAMETER C_DCACHE_BYTE_SIZE = 16384 PARAMETER C_DCACHE_LINE_LEN = 8 PARAMETER C_DCACHE_USE_WRITEBACK = 1 PARAMETER C_DCACHE_VICTIMS = 8 PARAMETER C_USE_HW_MUL = 2 PARAMETER C_USE_DIV = 1 PARAMETER C_USE_BRANCH_TARGET_CACHE = 1 PARAMETER C_FSL_LINKS = 1 PARAMETER C_INTERCONNECT_M_AXI_DP_WRITE_FIFO_DEPTH = 32 PARAMETER C_INTERCONNECT_M_AXI_DP_READ_FIFO_DEPTH = 32 PARAMETER C_DCACHE_FORCE_TAG_LUTRAM = 1 BUS_INTERFACE M_AXI_DP = axi4lite_0 BUS_INTERFACE DEBUG = microblaze_0_debug BUS_INTERFACE DLMB = microblaze_0_dlmb BUS_INTERFACE ILMB = microblaze_0_ilmb BUS_INTERFACE SFSL0 = fsl_ex_ports_0_to_microblaze_0 BUS_INTERFACE MFSL0 = microblaze_0_to_fsl_ex_ports_0 PORT MB_RESET = proc_sys_reset_0_MB_Reset PORT CLK = clk_100_0000MHz END BEGIN mdm PARAMETER INSTANCE = debug_module PARAMETER HW_VER = 2.00.b PARAMETER C_INTERCONNECT = 2 PARAMETER C_USE_UART = 1 PARAMETER C_BASEADDR = 0x74800000 PARAMETER C_HIGHADDR = 0x7480ffff BUS_INTERFACE S_AXI = axi4lite_0 BUS_INTERFACE MBDEBUG_0 = microblaze_0_debug PORT Debug_SYS_Rst = proc_sys_reset_0_MB_Debug_Sys_Rst PORT S_AXI_ACLK = clk_100_0000MHz END BEGIN clock_generator PARAMETER INSTANCE = clock_generator_0 PARAMETER HW_VER = 4.02.a PARAMETER C_CLKIN_FREQ = 100000000 PARAMETER C_CLKOUT0_FREQ = 100000000 PARAMETER C_CLKOUT0_GROUP = NONE PORT LOCKED = proc_sys_reset_0_Dcm_locked PORT CLKOUT0 = clk_100_0000MHz PORT RST = RESET_N PORT CLKIN = CLK END BEGIN axi_interconnect PARAMETER INSTANCE = axi4lite_0 PARAMETER HW_VER = 1.03.a PARAMETER C_INTERCONNECT_CONNECTIVITY_MODE = 0 PORT interconnect_aclk = clk_100_0000MHz PORT INTERCONNECT_ARESETN = proc_sys_reset_0_Interconnect_aresetn END BEGIN axi_gpio PARAMETER INSTANCE = LEDS PARAMETER HW_VER = 1.01.a PARAMETER C_GPIO_WIDTH = 8 PARAMETER C_ALL_INPUTS = 0 PARAMETER C_INTERRUPT_PRESENT = 0 PARAMETER C_IS_DUAL = 0 PARAMETER C_BASEADDR = 0x40000000 PARAMETER C_HIGHADDR = 0x4000ffff BUS_INTERFACE S_AXI = axi4lite_0 PORT S_AXI_ACLK = clk_100_0000MHz PORT GPIO_IO_O = LEDS_TRI_O END BEGIN axi_spi PARAMETER INSTANCE = Generic_SPI PARAMETER HW_VER = 1.01.a PARAMETER C_BASEADDR = 0x40a00000 PARAMETER C_HIGHADDR = 0x40a0ffff BUS_INTERFACE S_AXI = axi4lite_0 PORT S_AXI_ACLK = clk_100_0000MHz PORT SS = SPI_FLASH_SS PORT SCK = SPI_FLASH_SCLK PORT MOSI = SPI_FLASH_MOSI PORT MISO = SPI_FLASH_MISO PORT SPISEL = net_vcc END BEGIN fsl_v20 PARAMETER INSTANCE = fsl_ex_ports_0_to_microblaze_0 PARAMETER HW_VER = 2.11.e PORT FSL_Clk = clk_100_0000MHz PORT SYS_Rst = RESET_N PORT FSL_M_Clk = clk_100_0000MHz PORT FSL_S_Clk = clk_100_0000MHz END BEGIN fsl_ex_ports PARAMETER INSTANCE = fsl_ex_ports_0 PARAMETER HW_VER = 1.00.a BUS_INTERFACE MFSL = fsl_ex_ports_0_to_microblaze_0 BUS_INTERFACE SFSL = microblaze_0_to_fsl_ex_ports_0 PORT o_FSL_S_Read = fsl_ex_ports_0_o_FSL_S_Read PORT o_FSL_S_Data = fsl_ex_ports_0_o_FSL_S_Data PORT o_FSL_S_Control = fsl_ex_ports_0_o_FSL_S_Control PORT o_FSL_S_Exists = fsl_ex_ports_0_o_FSL_S_Exists PORT o_FSL_M_Write = fsl_ex_ports_0_o_FSL_M_Write PORT o_FSL_M_Data = fsl_ex_ports_0_o_FSL_M_Data PORT o_FSL_M_Control = fsl_ex_ports_0_o_FSL_M_Control PORT o_FSL_M_Full = fsl_ex_ports_0_o_FSL_M_Full END BEGIN fsl_v20 PARAMETER INSTANCE = microblaze_0_to_fsl_ex_ports_0 PARAMETER HW_VER = 2.11.e PORT FSL_Clk = clk_100_0000MHz PORT SYS_Rst = RESET_N PORT FSL_M_Clk = clk_100_0000MHz PORT FSL_S_Clk = clk_100_0000MHz END noeppkes ...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.