Problem kodning FlipFlop i VHDL

A

AMCC

Guest
Kære Alle, jeg bruger følgende kode til oprettelse af en FF med synkron reset og muliggøre Run_Condition: proces (aq_clk, en_aq, start, kør) begynder if (aq_clk'event og aq_clk = '1 '), så hvis (en_aq = '0 ') derefter køre
 
proces (aq_clk, en_aq, start) variabel temp: std_logic_vector (1 downto 0); begynde temp: = en_aq & start; if (aq_clk = '1 'og aq_clk'event) og derefter sagen (temp) er, når "00" | " 01 "=> køre køre null; ende sag; end if; ende proces;
 
Eller sæt en startværdi: signal køre: std_logic: = '0 ';
 
nøjagtig som sagt ovenfor, kan du angive en startværdi for "run" før, hvis udsagn, eller lave en sag for de manglende betingelser ikke er dækket af din kode ... eller du kan blot tilføje et "andet" tilstand før "end hvis "til at dække de manglende betingelser (samme som at tilføje tilfælde):)
 
Hej alle, men i syntese denne første værdier er ikke taget i betragtning. Hvordan du løser dette problem, når enheden initialisering er nødvendig.
 
Kære alle, Tak for din kommentar, men jeg tror, at problemet ikke er den oprindelige værdi. 'Run' vil starte '0 'en eller anden måde (enten som standard initialisering eller ved det faktum, at en_aq er '0' i første omgang (og denne er korrekt initialiseret) Jeg spekulerer på, om der er nogen forskel på at bruge:. Hvis elsif endif ELLER hvis else if end if Er det muligt, at synthesizeren kan have forskellige opfattelser af koden? Thnak tak for opmærksomheden. Venlig hilsen AMCC
 
Først og fremmest er der ingen endif det er kun ende hvis i VHDL, hvis du siger elsif ... så er det bare en fortsættelse af sætningen før den sidste Else-du kan bare have, hvis og elsif .. eller, hvis og ellers ... afhænger på dit design adfærd .... men hvis det er andet, hvis ... så er der indlejrede hvis ellers udsagn ... og det er anderledes i syntese selvfølgelig Jeg tror dit problem ligger i, hvis ellers udsagn ... prøv at skrive dem korrekt i henhold til opførslen af FF, du ønsker at have ... så mit råd tilføje en afsluttende ellers med de betingelser, der dropper ud fra de første to betingelser i løb og begynde:)
 
Kære Salma, Fra kursus "end if" ... min "skrive" fejl :). Et beslægtet spørgsmål, som rejses i mit hoved: Hvad er forskellen i løbet af en synthesizer når kodning en flip-flop med synkron muliggøre og nulstilling af de to beskrivelser nedenfor? Description1: if (clk'event og CLK = '1 ') og derefter if (reset = '1'), derefter ud
 
selvfølgelig den præcise gennemførelse af koden afhænger af syntesen anvendte værktøj og målet arkitektur af enheden .... men generelt set: if (uden andet) udleder en lås (undgå dette), hvis ellers indebærer en mux, hvis ellers hvis, eller hvis elsif ... indebærer prioritet kodet logik ... med forskellige niveauer alt efter de skriftlige udsagn ... tænk som om du har her et mux med en simpel input på en PIN-kode (koden efter hvis) og en hel masse andre logik som den anden indgang (koden efter den anden, hvis eller elsif ... osv.), er at gøre et andet niveau med muxes ... osv: D
 
I dette program, hvis 'run' tilstand er ude (output port), så u ikke sætte ind i processen () følsomhed listen, eller hvis kørslen er variabel, så kan du bruge variabel opgave redegørelse for assiging værdien. gerne køre: = en_aq;
 
fyre det virker kun i Verilog hvis cond 1 og derefter erklæring 1, hvis cond 2 så sætning2 i vil bygge prioriteret encoder i VHDL mener er lidt forskelligt, hvad der skal ske, hvis cond1 og cond begge sande, dette skal beskrive eller cond1 og cond2 falsk. Regards,
 

Welcome to EDABoard.com

Sponsor

Back
Top