Quartus ii
Quartus II. 4. rész. A kombinált logika elemei. Counter.
Történelmileg, digitális áramkörök leírására, néhányat
olyan elemek, amelyek mindkét logikai típust tartalmazzák, mind a kombinatorikus, mind a regisztert.
Ezért jó lenne egyrészről megismerni funkciójukat, másrészt tudni, hogy mit fognak összeállítani egy negyedvel.
Tekintsünk egy egyszerű példát, a szinkron "SR" -trigger, amelyet a primitív "SRFF" ír le:
Ha aktív jel van az "S" bemeneten. a kimeneten. a köpeny elején, "1" -re áll.
Ha aktív jel van az "R" bemeneten, a kimeneten. a köpeny elején "0" lesz beállítva.
Ha két jel egyidejűleg van. minden köpeny esetében a ravaszt az ellenkezőjét megváltoztatja. Mindkét jel hiányában a trigger kimenetének állapota nem változik.
Megközelítőleg azonos kombinatorikus logika és az, hogy ugyanazt a célt (helyzeti beállítás nyilvántartás egy bizonyos állapotban) lesz hozzá a fordító a megafunctions „LPM_DFF”, ha az elem tulajdonságai hozzá bemenetek „sset” és a „sclr” (szinkron beállítás és szinkron visszaállítás):

Ha van jel a bemenet bemeneténél. minden kiváltó. a köpeny elején, "1" -re áll.
Ha van egy jel a "sclr" bemeneten. minden kiváltó. a köpeny elején "0" -ra áll.
Mindkét jel hiányában a bemeneti adatok a regiszterben kerülnek rögzítésre.
Ha két "sset" és "sclr" jel egyidejűleg van, az "SRFF" primitívtől eltérően,
A prioritás "sclr", és minden kiváltó "0" értékre van állítva.
A kombinált logika másik példája a számláló.
Ha már ismerős konstrukciókat használunk. egyszerű négyjegyű
a számláló a következőképpen ábrázolható:

Amint az a diagramból látható, a következőképpen működik, az "LPM_ADD_SUB" funkció a kimeneten lévő "LPM_DFF" számra növeli az "1" állandó értéket. Így az órafrekvencia minden egyes klónjánál az "1" érték meghaladja az előzőt az "LPM_DFF" regiszterben. Vagyis a klaszterek száma számít. Végezze el ugyanazt a funkciót az "LPM_COUNTER" megafunkció segítségével:

Mivel a számláló nagyon gyakran használt elem, néhány tulajdonságot ismertetek
megjegyzések: "LPM_COUNTER" részletesebben:

bemenetek:
- A "sset" és a "sclr" ugyanolyan hatású, mint az "LPM_DFF" esetében. azaz állítsa be vagy állítsa vissza az összes indítót.
- „Sload” együtt használható „adat []”, és megállapítja az összes flip-flop az állam meglévő a bemeneti „adatok []”. (Ha a bemeneti „adatok []” hiányzik, be fogja tölteni a „0” „sload”). E három bemenet közül a maximális prioritás "sclr", majd "sload", a minimális - "sset".
- "frissítés" - a számla irányának ellenőrzése. Ha a "frissítés" értéke "1", akkor minden számláló ciklusnál a számláló értéke növekszik. ha a "0" csökken. Ha ez a bemenet nem érhető el, akkor a fiók iránya az "LPM_DIRECTION" paraméterben állítható be (az alapértelmezett "UP").
- "clk_en" köpeny felbontása. Az aktív jel hiánya ezen a bemeneten megtiltja az aktiválási műveleteket.
- A "cnt_en" és a "cin" egyenértékű bemenetek. Csak a számlálási ciklusokat irányítják, és nem befolyásolják a "sload", "sset" és "sclr" műveleteket.
- Kimenetek "q []" - valójában. a számláló bitjei. Számuk (bitmélység) az "LPM_WIDTH"
- A "cout" kimenet hordozó. Ha az "LPM_MODULUS" paraméter nincs jelen vagy egyenlő "0" értékkel, a "cout" jel aktív lesz, ha a számláló kimenete "1".
Ha a paraméter „LPM_MODULUS” van némi értéke, „cout” lesz aktív, ha a számláló értéke 1-nél kisebb „LPM_MODULUS”, és a következő számlálási ciklus „0” betöltődik a számlálót.
Végezetül azt szeretném mondani, hogy véleményem szerint a kis cikksorban szereplő információk elégségesek a Mars rover projektjeinek megvalósításához.
Hogyan lehet kibővíteni az impulzust az FPGA-val?
Van 1 kHz 2 mk, 1 kHz 50 mk van szüksége.
Nem biztos, hogy jó választ adhat erre a kérdésre, mivel a feladat nem teljesen világos.
A legegyszerűbb módja annak, hogy nagyon nagy frekvenciájú "polírozzuk" a jelet. Így észreveheti az elejét valamilyen hibával, majd számolja a megadott számú intézkedést a [cenzorizált] nagy frekvencián, és ez egy széles impulzus végét jelenti. Ezzel a módszerrel természetesen a kimeneti széles impulzus fázisa kissé rázkódni fog az eredetihez képest. Nem könnyű impulzus-bővítőt létrehozni a fázis megőrzésével, ha csak lehetséges.
Hogyan lehet kibővíteni az impulzust az FPGA-val?
Van 1 kHz 2 mk, 1 kHz 50 mk van szüksége.