Problém pro smyčky v Verilog

K

keremcant

Guest
Ahoj, my se snažíme použít tento paměťový modul na FPGA. vše funguje, ale do klidové polohy. není vynulování paměti. Kód je následující:
Code:
 Modul tirtik_hafiza3 (vstup [06:00] tirtik, vstup hodiny, vstup reset, vstupní read_write, výstup reg. read_write_led, výstup reg [06:00] mem_led), reg [06:00] mem [100:0] reg [07:00] adresa, reg. změna, celé číslo i, vždy @ (posedge hodiny) začít if (reset) začíná adresu
 
Dobrý den, zkuste následující kód [kód] Modul tirtik_hafiza3 (vstup [06:00] tirtik, vstup hodiny, vstup reset, vstupní read_write, výstup reg. read_write_led, výstup reg [06:00] mem_led), reg [06:00] mem [ 100:0] reg [07:00] adresa, reg. změna, / / ​​celé číslo i, reg [06:00] rst_counter, reg. rst, rst_f1; Vždy @ (posedge hodiny) začít if (reset) rst
 
Dobrý den, zkuste následující kód [kód] Modul tirtik_hafiza3 (vstupní vodič hodiny, vstupní vodič reset, vstupní vodič [06:00] tirtik, vstupní vodič read_write, výstup reg. read_write_led, výstup reg [06:00] mem_led), reg [6: 0] mem [100:0] reg [07:00] adresa, reg. změna, / / ​​celé číslo i, reg [06:00] rst_counter, reg. rst, rst_f1; Vždy @ (posedge hodiny) začít if (reset) rst
 
Dobrý den, zkuste následující kód [kód] Modul tirtik_hafiza3 (vstupní vodič hodiny, vstupní vodič reset, vstupní vodič [06:00] tirtik, vstupní vodič read_write, výstup reg. read_write_led, výstup reg [06:00] mem_led), reg [6: 0] mem [100:0] reg [07:00] adresa, reg. změna, / / ​​celé číslo i, reg [06:00] rst_counter, reg. rst, rst_f1; Vždy @ (posedge hodiny) začít if (reset) rst
 
Ahoj keremcant jsem simulovat váš kód a není tam žádný problém pro smyčce. Jen jsem viděl menší chyba v kódu, takže mem [100] se nikdy obnovit. reg [06:00] mem [100:0] / / Zde si prohlásit, že paměť hloubka je 101 slov (adresa 0 až 100). for (i = 0; i
 
Pro simulaci není problém s jakýmkoliv kódem, v chování kódu můžete napsat nějakou věc, která dovolila v Syntex, ale když to přijde k syntéze jsem napsal jednu logiku, může existovat jiné řešení za to. S pozdravem, Shitansh Vaghela
 
Ano, mnozí spuštění kódu v simulaci, ale ne synthesizable. Ale pokud vím, měla by pro smyčky kódu pracovat ve většině syntézy nástrojů právě teď. To není chování kód, pokud budeme používat non-konstantní hodnotu pro smyčce.
 
Ale pokud vím, měl u smyčky kódu pracovat ve většině syntézy nářadí právě teď.
To není problém pro vedení obecně spíše než pokus o obnovení všech paměťových míst současně v jednom hodinovém cyklu . To není podporován RAM jednotky každé rodině FPGA nevím. Řešení jak navrhl shitansh je třeba tady, že obnoví jedno místo za hodinovém cyklu. Jediná podivná věc je, že kompilátor nevyhodí varování nebo odmítne odvodit vnitřní paměti RAM pro nepodporované konstrukce. Ale to je otázka na konkrétní syntézy nástroje.
 
jejím jediným 808 registrů. Doufám, že jsem každý FPGA bude moci, aby se vešly, že mnoho. K dispozici je také případ, kdy si tuk-prsty "reset" jako "resrt", nebo něco podobného. Verilog má výchozí síť typu "net", místo "Žádné". Proto není nutné deklarovat signály, které jsou 1b sítě, budou nástroje přidávat za vás. To znamená, že to, co by mělo být chyba je nyní varování - Reset připojen k undriven sítě. A samozřejmě v případě, kdy obnovit jde na pin balíčku, který je připojen někde jiný, než kde jste očekávali. můžete zkontrolovat schéma a _pad.txt soubor.
 
S těmi, kódování styl, syntéza nástroje obvykle detekovat to jak registry místo paměti RAM. Kód je příliš složitá na to nástroj, který ví, že to má být RAM. Automatická detekce jako RAM potřebuje oddělený kód, který následuje zvláštní styl kódování (lze číst v dokumentaci nástroje), nebo můžeme vytvořit jej pomocí megafunction / generátor kódu. Zpráva o využití prostředků může nás, zda je detekována jako registrů nebo RAM. Pokud konstrukce je dostatečně malá velikost a vejde do FPGA, to je obvykle dostatečně bezpečný, aby mu jsou registry. Registry mohou být reseted současně v jednom hodinovém cyklu. Můžeme použít "pro" nebo "vytvořit pro" klíčové slovo v Verilog k vytvoření registrů. Ale pokud designu zaujímá téměř celé FPGA registru zdrojů pomocí FPGA RAM zdroje se dává přednost. To je také blíže k realizaci, které používají ASIC vytvořeného RAM makra. Kromě toho bude syntéza doba kratší, pokud jsme si ji jako RAM místo registrů, zejména pokud chceme generovat paměti s velkým počtem bitů. Pokud budeme implementovat jako RAM, musíme nastavit počáteční hodnotu pomocí paměťové inicializační soubor (pokud to podporuje FPGA), nebo použít řešení, které shitansh napsat jedno místo za hodiny.
 
S těmi kódování styl, syntéza nástroje obvykle detekovat to jak registry místo paměti RAM
Ano, ale zřejmě syntéza nástroj choval jinak s původně vyslán kód:.
vše funguje, ale obnovit
Toto chování (za předpokladu, že to byly hlášeny správně), že je jen pochopitelné, je-li nástroj odvodit RAM a ignoroval reset akci.
 
Ano, máte pravdu. Je pochopitelné, pouze v případě vyvodit RAM zachycen nástrojem. Syntéza upozornění log by ujistěte se, že toto. Chci odstranit svůj výraz v předchozí příspěvek navíc. Paměti inicializační soubor se nahraje až po konfiguraci, ne po resetu, tak to nemůže být použit pro reset paměti. Sekvenční obnovit musí být použit.
 

Welcome to EDABoard.com

Sponsor

Back
Top