Gast
#1607564
hallo,
mein erstes cpld projekt funktioniert ja soweit (siehe kunstwerke -> vga
karte) nun wuerd ich das gern noch ein wenig verbessern und da
hab ich noch ein paar fragen... bin noch anfaenger ;)
1) wenn ich eine fsm programmiere hab ich ja immer 3 always-bloecke.
-next state logic.
-current state logic und
-output logic
in der next state ist ja immer der reset mit eingebaut. wenn ich kein
reset brauche ist es ok wenn man die current state logic direkt den next
state setzt ?
der unterschied besteht ja darin das next state logic den state immer
mit einer non blocking zuweist hingegen current state mit blocking.
spricht irgendwas dagegen ? oder kann das probleme verursachen ?
die frage stelle ich da ich one hot encoding verwende. wenn ich next
state und current state verwende brauche ich doppelt soviel register...
das ist auf einem cpld natuerlich etwas problematisch
2) eine frage zur current state logic. in der sensitivliste sollten dort
ja immer alle signale enthalten sein die zur entscheidung des current
state noetig sind. momentan habe ich nur clock in der sensitivliste es
funktioniert
ist das soweit ok ?
3) in manchen fsm beispielen im web lese ich das die dort non blocking
zuweisungen im current state verwendet wird. hat das nen tieferen sinn ?
weil die current state ist ja rein kombinatorisch ? da muss ich doch
blocking verwenden ?
4) eine frage zu verilog modulen. ich hab ja die moeglichkeit mehrere
module zu verwenden und diese beliebig oft zu erzeugen usw. hat das
einteilen in module eine auswirkung auf die synthese ? oder dient das
rein zur uebersicht bzw. code reusage ?
5) fuer mich als anfaenger ist es manchmal schwer rauszufinden warum
etwas nicht funktioniert. ich hab hin und wieder das problem das ich
etwas gebaut habe klappt auch soweit.
sobald ich z.b. ein counter um ein bit erweiter gibt es probleme. in der
behavioral simulation gehts einwandfrei. auf der hardware (xc95144)
leider nicht. oder sagen wirs so es funktioniert meisstens. nur halt
manchmal nicht.
ich hab mir die rtl schematic mal angesehen. die ist schon recht gross
nur fuer den counter weil die ffs woanders auch noch verwendet werden
usw. hab auch schon versucht das ganze ein wenig flacher zu machen...
nur so recht verstehen tue ichs nicht weil ich z.b. im timing report
kein problem gemeldet bekomme so von wegen max osc ist so gross der
steht immer auf dem max wert.
daher die frage wie geht ihr an solche probleme ran ?
danke und lg :)
arf schon wieder montag