v

A

amburose

Guest
Mám problém, keď som intialize hodnoty v účtovnej časť ...
syntéza a simulácia má pravdu ..., ale v reálnom čase Mám iný výsledok zo simulácie ....

Knižnica IEEE;
použitie IEEE.STD_LOGIC_1164.ALL;
použitie IEEE.STD_LOGIC_ARITH.ALL;
použitie IEEE.STD_LOGIC_UNSIGNED.ALL;jednotka je posledný
Port (a: in std_logic_vector (31 downto 0): = x "FE3A3AB2";
K: v std_logic_vector (31 downto 0): = x "00112233";
CLK: in std_logic;
RST: in std_logic;
q: v std_logic_vector (1 downto 0);
d: v std_logic_vector (7 downto 0));
konci minulého;

architektúra Behaviorálne posledný je
signálu c, d1: std_logic_vector (31 downto 0): = x "00000000";
signálu počítať: integer rozmedzí 0
- 255: = 0;
en signál: std_logic;
začať

proces (a, k, c, d1, CLK, RST)
začať
if (RST ='0 '), potom

d <= x "00";
en <='0 ';
elsif (CLK ='1 'a clk'event), potom
d1 <= nie je (a xnor k);
c (31) <= d1 (31);
loop1: pre i v 30 downto 0 slučky

c (i) <= c (i 1) xor d1 (i);

koniec slučky loop1;

q prípade je
, Keď "00" => d <= c (31 downto 24);
, Keď "01" => d <= c (23 downto 16);
, Keď "10" => d <= c (15 downto 8);
, Keď "11" => d <= c (7 downto 0);
keď ostatné => d <= x "00";
koniec prípadu;
end if;konci procesu;Behaviorálne konca;
v rovnakom rozsahu aj dal hodnotu vnútri architektúra .. mám perfektný výsledok

tj ...

d1 <= not (x "FE3A3AB2" xnor x "00112233"); miesto d1 <= nie je (a xnor k);im pomocou Xilinx projekt navigátor 6.3i ...
je softvérový problém ........ alebo čo ešte .....
plz jeho naliehavé ....

Vďaka opäť vypočutie z u. ...

 
Nerád to hovorím, ale to by mohol byť nástroj.Ak môžete, musíte si stiahnuť najnovšiu verziu ISE a potom skúste to znova.Vaše číslo vyzerá v poriadku a nie je divu, že vaše skutočné výsledky líšia od vašich simuláciu.

V novších verziách sa ISE nástroje majú zvyčajne stanovené obmedzenia, pokiaľ ide o staršie správy tak, že dávajú skúste a dajte nám vedieť, ako to dopadne.

E

 
pozri s nástrojom prvej ....

Možno potom skúsiť dať je v oboch číselných hodnôt v generických potom priradiť je k inej a k. .. alebo konštanty a priradiť ich hodnoty sa a k. ...
môžeš urobiť, pretože sa nemení v celom program

 
Žiadne varovania ......
Kód je tu ... ale mám rovnaký problém ....

Knižnica IEEE;
použitie IEEE.STD_LOGIC_1164.ALL;
použitie IEEE.STD_LOGIC_ARITH.ALL;
použitie IEEE.STD_LOGIC_UNSIGNED.ALL;jednotka je posledný
Port (a: in std_logic_vector (31 downto 0);
K: v std_logic_vector (31 downto 0);
CLK: in std_logic;
RST: in std_logic;
q: v std_logic_vector (1 downto 0);
d: v std_logic_vector (7 downto 0));
konci minulého;

architektúra Behaviorálne posledný je
signálu c, d1: std_logic_vector (31 downto 0): = x "00000000";

začať

proces (a, k, c, d1, CLK, RST)
začať
if (RST ='0 '), potom
d <= x "00";

elsif (CLK ='1 'a clk'event), potom
d1 <= nie je (a xnor k); - not (x "FE3A3AB2" xnor x "00112233");
c (31) <= d1 (31);
loop1: pre i v 30 downto 0 slučky

c (i) <= c (i 1) xor d1 (i);

koniec slučky loop1;

q prípade je
, Keď "00" => d <= c (31 downto 24);
, Keď "01" => d <= c (23 downto 16);
, Keď "10" => d <= c (15 downto 8);
, Keď "11" => d <= c (7 downto 0);
keď ostatné => d <= x "00";
koniec prípadu;
end if;konci procesu;Behaviorálne konca;ale teraz web aktualizácia 6.3i nie je dostupné ......
je to problém ...

 
Port (a: in std_logic_vector (31 downto 0): = x "FE3A3AB2";
K: v std_logic_vector (31 downto 0): = x "00112233";V "reálnom" svete neexistuje žiadny spôsob, ako initilize vstupov, ako je to, že budete musieť použiť skutočné signály, aj

signálu c, d1: std_logic_vector (31 downto 0): = x "00000000";

nikdy nebude fungovať, musíte použiť reset signál initilize tieto hodnoty.Na tento jednoduchý nástroj HDL kódu nie je problém

 
Citácia:

signálu c, d1: std_logic_vector (31 downto 0): = x "00000000";

nikdy nebude fungovať, musíte použiť reset signál initilize týchto hodnôt
 
Xilinx podporuje aj HDL inicializácia registrov v FPGA a jeho CPLDs.

Nikdy som potreboval asynchronní reset v mojom Xilinx FPGA projektov.

 
Signálu a portu je zlikvidovať počas syntézou.Táto funkcia je iba určený na simuláciu a modelovanie účely.To je tiež dôvod, prečo sa dostanete dva rôzne výsledky.

Jediná vec,
ktorú si môžete dať pevnú hodnotu v definícii je konštantná.

 
Ako všeobecné pravidlo: inicializácie signálov (aj porty, pretože sú signály) nie sú synthesizable.ani Xilinx ani @ ltera, actel, QL, ...podporovať to.
Avšak pre niektoré FPGA, môžete použiť niektoré atribúty (ako init pre Xilinx FPGA) inicializova barana alebo LUT.

ale nezabudnite, FPGA Syntetizátory VŽDY ignorovať initializations signálov (skúste sa xst, synplify, Leonardo a ... dostanete rovnaký výsledok).Avšak pokiaľ viem, ak chcete vykonať ASIC môžete použiť signál inicializácie (i nepracujú s asics).

 
amir81 Napísal:

Ako všeobecné pravidlo: inicializácie signálov (aj porty, pretože sú signály) nie sú synthesizable.
ani Xilinx ani @ ltera, actel, QL, ...
podporovať to.
 
Pozri príklad z qu (at) rtus príručku s VHDL kód z registra s Reset a High Power-Up Level.
Kód:

SIGNAL q: STD_LOGIC: ='1 '; - q má predvolené hodnotu'1'

PROCESS (CLK, reset)

BEGIN

IF (reset ='1 '), potom

q <='0 ';

ELSIF (rising_edge (CLK)) Then

q <= d;

END IF;

END PROCESS;
 
HDL registra inicializácie v Xilinx ISE je popísaná v užívateľskej príručke XST kapitolami "VHDL Jazyková podpora" a "Podpora Verilog Language":
http://toolbox.xilinx.com/docsan/xilinx92/books/docs/xst/xst.pdf

 

Welcome to EDABoard.com

Sponsor

Back
Top