Ex9 en Quatus 8.1

Discussies over FPGA-module en experimenteerbord

Postby hablox » Fri Nov 14, 2008 12:00 am

Ik ben inmiddels aangeland bij Example 9 (multimeter).
Dit voorbeeld krijg ik echter niet werkende.
Na het programmeren komt er niets op het LCD.
Als ik het programmageheugen bekijk zoals beschreven in het artikel zie ik allemaal nullen.
Bij het compileren krijg ik wel verschillende warnings in verband met de data width die niet klopt in de hex file.
Kunnen al deze problemen te maken hebben met het feit dat ik versie 8.1 heb van Quartus II ?
Ik vind echter geen oudere versies op internet.
Heeft iemand anders al Ex9 werkend met Quartus 8.1 ?
hablox
 
Posts: 4
Joined: Thu Jan 02, 2014 3:43 pm

Postby Guest » Mon Nov 17, 2008 12:00 am

Dit probleem doet zich voor als het hex-bestand niet in de juiste folder staat. Dit staat vast ingesteld op "C:/altera/FPGA_course/T8052test/AlteraCyclone/firmware.hex". De kans is groot dat het bestand "firmware.hex" bij jou op een andere locatie is opgeslagen.

Tijdens compileren zal er een Critical Warning aangemaakt worden (check je messages in Quartus) met de melding :
"Critical Warning: Can't find Memory Initialization File or Hexadecimal (Intel-Format) File C:/altera/FPGA_course/ex9/firmware/firmware.hex -- setting all initial values to 0"

Het voorbeeld aanpassen is eenvoudig. Er zijn 2 methodes mogelijk:

METHODE 1

Na compileren klik je in de Project Navigator op Hierarchy. Zoek in deze tree het blokje "xram_cyclone". Dubbelklik hierop, om de wizard te starten. Klik telken op next, totdat je op pagina 5 (van de 7) terecht komt. Op deze pagina klik je op "Yes, use this file.......". Vervolgens klik je op "Browse". Nu kan je opgeven waar jou hex-bestand is opgeslagen.

Als laatste klik je op finish, en compileer je het voorbeeld opnieuw.

METHODE 2

Een andere manier is om het bestand xram_cyclone.vhd te openen. Zoek in dit bestand naar de regel :
-- Retrieval info: PRIVATE: MIFfilename STRING "C:/altera/FPGA_course/T8052test/AlteraCyclone/firmware.hex"
Pas de string in deze regel aan, zodat deze nu verwijst naar het hex-bestand op jouw computer. Hierna moet je het voorbeeld nog compileren, en dan is alles voor mekaar.

Succes!
Guest
 

Postby hablox » Mon Nov 17, 2008 12:00 am

Bedankt voor het antwoord maar dit is het spijtig genoeg niet.
Ik heb al alles geprobeerd.
Uiteindelijk heb ik heel het project opnieuw gebouwd vanaf nul en ook de c-code opnieuw gecompileerd met de SDCC compiler.
Ook nu blijft het LCD scherm leeg en ik krijg nog steeds allemaal nullen als ik de contents van het geheugen bekijk.
Het gebeurt ook zeer vaak dat Quartus crasht als ik de contents wil bekijken. Ik krijg dan een segmentation error in Quartus en een fatale crash van het programma.
Bij het opnieuw bouwen van het project vanaf nul heb ik enkele vragen/opmerkingen:
1. In de pin-assignments staan 4 altera_reserved pins, wat is dit en zijn deze nodig ?
2. In de file lijst van het project ex9 staan volgende files: lpm_ff0.vhd en ram_stratix.vhd. Ik zie echter niet waar deze files worden gebruikt. In mijn nieuw project heb ik die dan ook weggelaten.
3. Ik krijg bij compilatie volgende warning:
Warning: Found pins functioning as undefined clocks and/or memory enables
Info: Assuming node "altera_internal_jtag~TCKUTAP" is an undefined clock

Ik weet niet of dit iets te maken heeft met het probleem.

Ik vind het erg jammer dat ik dit niet aan het werk krijg.
hablox
 
Posts: 4
Joined: Thu Jan 02, 2014 3:43 pm

Postby Guest » Tue Dec 02, 2008 12:00 am

Hallo,

Heb je al gecontroleerd of het resultaat van de SDCC-compiler klopt? Een eenvoudige check is om te kijken of het HEX-bestand niet leeg is.

Indien het geheugen in de FPGA leeg is, zal het LCD ook niks zinnigs aangeven. Het programma in het geheugen moet eerst het LCD juist aansturen alvorens deze informatie kan weergeven.

Het lijkt erop dat je compilatie nog niet helemaal juist verloopt, of dat je toch nog een foutje gemaakt hebt bij het verwijzen naar het hex-bestand. Je kan in Quartus het geheugen via JTAG vullen. Dat kan door in de "In-System-Memory Content Editor". Na het programmeren van je FPGA, open je dit venster (Via Tools-menu). Nu kan je de inhoud bekijken (deze is dus bij jou helemaal leeg?). Vanuit deze editor kan je vervolgens data in het geheugen plaatsen. Als dit goed is gegaan, moet je nog even de congtroller resetten (via een drukknop op het experimenteerbord). Nu moet je voorbeeld goed lopen.

Indien bovenstaand allemaal met succes is uitgevoerd, kan je nogmaals zoeken naar wat je fouit hebt gedaan bij het compileren. Zelf heb ik geen FPGA-unit plus experimenteerprint tot mijn beschikking, anders zou ik eventjes het voorbeeld opnieuw compileren en testen.

ad. 1. De 4 altera_reserved pins kan ik in het voorbeeld niet terugvinden in de assignments. Waar zie je deze? In principe kunnen dit soort assignment ons ontwerp niet in de weg zitten.

ad. 2. Beide VHDL-bestanden zijn bestanden waarmee we het voorbeeld ook in andere FPGA's kunnen gebruiken. Ons ontwerp maakt hier geen gebruik van.

ad. 3. De compier heeft herkend dat een bepaalde pin (TCKUTAP) als kloksignaal wordt gebruikt, zonder dat wij hiervoor een constraint hebben ingevoerd. Dit maakt voor ons ontwerp niet uit, aangezien we de JTAG-chain alleen op zeer lage frequenties gebruiken, welke door de FPGA op zijn sloffen wordt gehaald.

Veel succes,
en laat wat horen als het nog niet lukt!
Guest
 


Return to 2006-03 FPGA-module

Who is online

Users browsing this forum: No registered users and 1 guest

cron