Pagina 1 di 3

Codice VHDL

MessaggioInviato: 26 apr 2014, 12:36
da Castello
Ho il seguente codice :


Codice: Seleziona tutto
entity ese_4 is
  Port (SEL : in std_logic; -- Ingresso di selezione
DOUT : out std_logic; -- Uscita dato seriale
CLK : in std_logic; -- Clock
RESET : in std_logic); -- Reset
end ese_4;

architecture Behavioral of ese_4 is
signal SEGN : std_logic_vector(6 downto 0); -- Registro per pattern
signal SELC : std_logic; -- Registro selezione pattern
signal CNT : integer; -- Contatore bit uscita
begin
process(CLK, RESET, SEL)
begin
if RESET='1' then
SEGN <= "0100111"; -- Pattern d'uscita
SELC <= '0'; -- Selezione di default
CNT <= 0; -- Contatore
elsif CLK'event and CLK='1' then
-- Rotazione registro pattern
SEGN <= SEGN(5 downto 0)&SEGN(6);
-- Contatore
if CNT = 6 then
CNT <= 0;
SELC <= SEL; -- Lettura e memorizzazione valore di SEL
else
CNT <= CNT + 1; -- Incremento contatore
end if;
end if;     
end process;
-- Assegnazione uscita e negazione
DOUT <= SEGN(6) xor SELC;

end Behavioral;

Ora, per quanto riguarda la sintassi (cilinx ) non mi da nessun problema.. mentre quando provo a simulare (modelsim) mi da invece dei problemi , sapreste aiutarmi?! Grazie mille!!



P.S Vi segnalo i miei problemi in fase di simulazione:
-Se reset='0' , qualunque sia il valore di SEl(o 0 o 1) la Dout mi ''esce'' tutta rossa e con una grande U;
-Se reset='1', qualunque sia sel la Dout mi esce sempre a 0.

Re: Codice VHDL

MessaggioInviato: 26 apr 2014, 13:36
da rini
Potresti postare l'andamento dei segnali ottenuti in ModelSim, per favore. Magari caricando qui uno screenshot di tali andamenti. Questo forum permette il caricamento delle immagini.

Re: Codice VHDL

MessaggioInviato: 26 apr 2014, 14:36
da Castello
non riesco ad inserire un immagine, pero il comportamento l ho descritto sotto il codice.

Re: Codice VHDL

MessaggioInviato: 26 apr 2014, 14:58
da rini
Ti assicuro che se riesci a scrivere codice VHDL puoi inserire una immagine qui. Precedentemente ti ho inserito il link su come uplodare le immagini qui.

Ma il testbench non lo hai postato. Quindi non saprò mai come hai descritto gli ingressi del tuo sistema.

Re: Codice VHDL

MessaggioInviato: 26 apr 2014, 15:03
da Castello
file:///C:/Users/w7/Desktop/CAM00085.jpg

Se escludi le tre slash iniziali e copi nella barra degli indirizzi ti dovrebbe visualizzare la foto

Re: Codice VHDL

MessaggioInviato: 26 apr 2014, 15:23
da posta10100
Castello ha scritto:ti dovrebbe visualizzare la foto

Ma dovremmo essere sul tuo PC... nessuno di noi ha quel file sul proprio desktop!

rini ha scritto:Magari caricando qui uno screenshot di tali andamenti. Questo forum permette il caricamento delle immagini.


Foto Utenterini ti ha già detto come si posta l'immagine, perché non segui le istruzioni?

Re: Codice VHDL

MessaggioInviato: 26 apr 2014, 15:34
da Castello
allora,ho fatto una foto con il mio cell ma la dimensione è di circa 2 mega che super la dimensione massima consentita, non so che altro fare , se volete aiutarmi potete creare voi il testbench o comunque vi ho gia descritto cosa accade!!!

Re: Codice VHDL

MessaggioInviato: 26 apr 2014, 15:41
da Castello
CAM00085 (FILEminimizer).jpg

Re: Codice VHDL

MessaggioInviato: 26 apr 2014, 21:06
da rini
Secondo me stai facendo le cose un po' a casaccio, nel senso che stai simulando un circuito digitale senza neanche aver scritto un minimo di file testbench. Quindi quando dici che

Castello ha scritto:.... i miei problemi in fase di simulazione:
-Se reset='0' , qualunque sia il valore di SEl(o 0 o 1) la Dout mi ''esce'' tutta rossa e con una grande U;
-Se reset='1', qualunque sia sel la Dout mi esce sempre a 0.


non so davvero cosa pensare. Come fai a mandare reset = '0' o reset = '1' senza la descrizione comportamentale di tali bit all'interno di un file testbench?
Scrivere un file testbench non è facile, bisogna prima capire cosa fa effettivamente il tuo codice. Ti faccio una domanda: sai cos'è una "sensitivity list" senza cercarla su Google?

Re: Codice VHDL

MessaggioInviato: 27 apr 2014, 2:22
da Castello
Certo che so cosa è una sensitivity list , ed è la lista dei segnali che c'è subito dopo process, ol clock asincrono e gli altri due asincroni... ma non capisco dove vuoi arrivare con quello che hai scritto!!!