Hur man läser datafil med VHDL

hur länge har kör du simuleringen för? och där är din klocka genereras?
 
I `ve ges vänta 10 ns, detta showin mig lite 25 - 30 värden, men det lagras i heltal så nu vill jag att placera värdena i matrisen så I` m förändra den genom att förklara en array. när det gäller att tilldela heltalsvärde till systemet hur jag ändra programmet arkitekturen Behavioral för fil2 är typ HELTAL1 är array (heltal intervall från 1 till 191.500) av heltal börjar testprocessen fil: text öppen read_mode är "C: \ Documents and Settings \ Chitra \ Desktop \ decimal.txt ", - file file test: texten är i decimal.txt, rörlig BUFF: linje, variabeln x: integer utbud 255 downto 0; --- x1 kan vara av vilket format som helst inledas medan (inte endfile (test)) loop readline (test, buff), läs (buff, x); int
 
Sir Jag fick effekt [COLOR = "Silver"] [SIZE = 1] ---------- Post läggas till 17:10 --------- - Tidigare inlägg var 17:08 ---------- [/SIZE]
[/color] men läsning bara första värdet SHD jag förlänga slingan
nåt så här @ Simulation Waveform Window? int = 185 och simulatorn stannar ............ Här finns en avvaktande uttalande om klockan ... och troligen ... du kanske har glömt att ge klockan stimulans, så att processen exekverar gång och avbryter ... så det första värdet är laddad och andra värden laddas inte. Det är problemet med 'CLK' .... while-slinga är bra ..... så påföljd är ... tillämpa klockan 'CLK'
 
Nu är jag läsa värdena i första kolumnen, men alla värden deklareras som heltal. Om jag vill att dessa värden i rad jag menar från int till viss mängd som int1, vars område är från 1 till 191.500 så hur ska jag ändra det här programmet?
 
I `ve ges vänta 10 ns, detta showin mig lite 25 - 30 värden, men det lagras i heltal så nu vill jag att placera värdena i matrisen så I` m förändra den genom att förklara ett matris. när det gäller att tilldela heltalsvärde till systemet hur jag ändra programmet arkitekturen Behavioral för fil2 är typ HELTAL1 är array (heltal intervall från 1 till 191.500) av heltal börjar testprocessen fil: text öppen read_mode är "C: \ Documents and Settings \ Chitra \ Desktop \ decimal.txt ", - file file test: texten är i decimal.txt, rörlig BUFF: linje, variabeln x: integer utbud 255 downto 0; --- x1 kan vara av vilket format som helst inledas medan (inte endfile (test)) loop readline (test, buff), läs (buff, x); int
 
sir Nu är jag kunna läsa värden och tilldela dem till array. men I `m inför ett problem i programmet nedan kan endast läsa 1: a kolumnen, så wat rätta kan jag ha pls Svara sir. enhet fil2 är port (clk: i bit, int: ut heltal: = 0), slutet fil2, arkitektur Behavioral i fil2 är typ NUM Array (naturliga utbredningsområde) av heltal; signal s NUM (0-166.499), börja processen (CLK) variabel ch: karaktär, rörlig inbuff: linje, file-test: text öppen read_mode är "C: \ Documents and Settings \ Chitra \ Desktop \ decimal.txt" variabel ord: integer; rörlig num_word: integer: = 0; inledas medan (inte endfile (test)) loop readline (test, inbuff), läs (inbuff, Word), läsa (inbuff, CH), S (num_word)
 
läs funktion kommer att läsa värdena från samma linje. Det finns en annan version av den funktion som kommer att berätta om en läsning har gjorts med framgång. Det kommer att ignorera mellanslag, så det finns ingen anledning för dig att läsa blanksteg mellan värdena. Du kan också inte behöver en tillfällig heltal för att lagra de avlästa värdena.
Code:
 arkitektur Behavioral i fil2 är typ NUM Array (naturliga utbredningsområde) av heltal; signal s NUM (0-166.499), börja processen - ingen klocka, eftersom du inte använder klockan variabeln inbuff: linje; fil test: Texten öppen read_mode är "C: \ Documents and Settings \ Chitra \ Desktop \ decimal.txt" variabel num_word: heltal: = 0; variabel good_read: Boolean; inledas medan (inte endfile (test)) loop readline (test, inbuff) good_read: = true, medan good_read loop Read (inbuff, s (num_word), good_read), om good_read så num_word: = num_word +1, End If, slutet loop, slutet loop, slutet process; slutet beteende,
 
bra sir om jag behöver flytta till nästa rad wat är att jag behöver göra. jag försökte sätta på ögla för readline men gick inte arbete. I don `t KNW wats fel bcos när" utan endfile loop "som ges bör läsa alla värden i texten rite??
 
av readline-funktionen läser en hel linje från en textfil (upp till nästa / r eller / n tecken) Den läser avläser värdena på den linjen. Om du har 100 värden på en linje du behöver ringa läsa 100 gånger innan du ringer readline igen.
 
fina herre om jag behöver flytta till nästa rad wat är att jag behöver göra. jag försökte sätta på ögla för readline men gick inte arbete. I don `t KNW wats fel bcos när" utan endfile loop "som ges bör läsa alla värden i texten rite??
Som TrickyDicky sa readline lagrar hela linjen. så du har gå till n 'läsa' .... om det finns n heltal per rad. Så jag skulle föreslå en annan metod .... Om du kan ändra formatet på indatafilen till några heltal per rad (hanterbart) .. allt ska fungera ... enkelt skript i Matlab kan hjälpa dig formatera texten så att det passar VHDL stil. andra komplexa lösningar existerar som utvecklar en ny förpackning.
 

Welcome to EDABoard.com

Sponsor

Back
Top