Bonjour,
J'ai l'habitude d'utiliser ce type de structure pour créer des compteurs générique. Sous ALtera Quartus pas de soucis, ça synthétise sans problème.
Je développe actuellement avec des outils Lattice, et il me refuse les attributs LOW et HIGH sur des "objets". J'en ai déduit qu'il refusait de gérer ces attributs pour des integer. En faisant des recherches il me semble que cette écriture est effectivement assez limite et que les attributs HIGH LOW sont plutôt à utiliser avec des std_logic_vector.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.numeric_std.ALL; [...] ENTITY toto IS GENERIC ( n : INTEGER ); PORT ( [...] ); END ENTITY toto; SIGNAL sig_clk_en_cnt : INTEGER RANGE 0 TO (n-1):= 0; ARCHITECTURE arch_toto OF toto IS BEGIN [...] IF (sig_clk_en_cnt = sig_clk_en_cnt'HIGH)THEN sig_clk_en_cnt <= sig_clk_en_cnt'LOW; END IF; [...] END arch_toto;
Est ce que mon raisonnement est bon ou est ce une limitation de la part du logiciel de Lattice ?
Comment coder la même chose avec des std_logic_vector en générique ?
Merci
Partager