Ik wil een digitaal filter maken in een FPGA.

MEt matlab heb ik nu alle coefficienten uit gerekend, deze wil ik in een ROM zetten in de FPGA (een M4k blok voor degene die dat wat zegt).

Echter als ik nu een ROM genereer dan wordt mij gevraagd om een Intel Hex bestand met de inhoud van die ROM....

Ik heb gegoogled en ik snap nu wel hoe dat IHex formaat er uit ziet maar is er een mogelijkheid om zo'n file te genereren met een een of ander programma?

Ik zie het namelijk niet zitten om elke keer als ik een coefficient wil veranderen weeer een check sum uit te rekenen en adressen bij te houden...

je kan toch programmeren? :) (joel had het toen ook zo gedaan :P)

ik weet niet of het heel veel punten zijn?

volgens mij kan je een ook een .mif file gebruiken om het in geheugen te laten.
de opbouw van de files is zo simpel dat je met textpad of iets dergelijks binnen een paar minuten een file hebt aangemaakt.

file hoort er zo uit te zien:


WIDTH=48;
DEPTH=1024;

ADDRESS_RADIX=HEX;
DATA_RADIX=HEX;

CONTENT BEGIN


000 : 000000000000  ;
001 : 000100010001  ;
002 : 000200020002  ;
003 : 000300030003  ;

--natuurlijk door tellen tot DEPTH--

END;

1e rij is addressen 2e rij data.

en als je dan toch nog een .hex file wilt hebben open je die .mif met quartus en dan sla je hem op als .hex. de conversie doet quartus dan voor je.

en hop klaar is miniKobo...

[offtopic] ik wou dat ik verdomme eens wist waarom 32 van me 48 databits in me design verdwijnen:S[/offtopic]

Het zijn er bij elkaar een stuk of 120... Dus valt wel mee idd maar zou toch makkelijk zijn als ik niet de adressen bij hoef te houden.

Als je toevallig avr-gcc op je systeem hebt staan, kan je avr-objdump gebruiken om binaire data om te zetten naar een hex-bestand.

[Edit]
Dat moet avr-objcopy zijn, uiteraard.

[Bericht gewijzigd door pros op ]

120 getallen is toch niks? das nog geen 8 bits geheugenbus.. met wat functies in excel (DECBIN) heb je dat rijtjes in nog een 3 seconden gemaakt. anders wil ik het ook wel ff voor je maken hoor. tis puur wat knip en plakwerk:P

Of het een 8 bits getal is of niet dat ligt helemaal aan de range die de getallen beslaat.... ze zijn wel opeenvolgend maar niet iets als 1,2,3,

klopt my bad... heb je helemaal gelijk in

toch denk ik dat het best gauw te doen is met excel en textpad hoor

Ik probeer het nu met matlab, ik laat wel weten als het gelukt is, bedankt iig voor het medenken :)

sure anders drop je maar mailtje dan doe ik het wel voor je.. zit toch hele dag met quartus te spelen en op compilaties van 1,5 uur te wachten:p

Download Hex workshop eens, is gratis en kan van en naar van alles en nog wat importeren en exporten, ook 8/16/32 bits intel hex. Waardes erin zetten en exporteren and that's it :)

Of Winhex, gebruik ik zelf, is freeware/trialware/oid, maar doet het ook prima. Is niet gelimiteerd in ieder geval :)

Ok ik zag het niet zitten om two's complement check sum uit te gaan zitten rekenen van alle bitjes in de hex file.

Dus ik heb gewoon een mif file gemaakt (thnx Fixation voor het idee)

Vanuit matlab geef ik nu een array in die de waarden bevatten die in de rom moeten komen (in decimalen).

Hij converteert de decimale waarde naar hex en schrijft vanaf adres 000 de waardes op en berekend zelf hoe breed de rom moet zijn en hoe diep.

En de eerste simulatie ( in Quartus) laat zien dat het werkt!

Bedankt voor de hulp allemaal :) (mocht iemand het nog willen hebben dan kan ik de matlab file uploaden)