bisogno del vostro aiuto !!!!!!!!!!!!!!!!!!!!!!!

L

lchtan

Guest
Sto incontrando qualche difficoltà nel mio programmazione VHDL, il sistema (qu (a) RTU II Version6.1) punti vi siete errore di sintassi nel mio codice, ma non so dove sia gli errori.Please help me, grazie !!!!!Errore (10.500): Errore di sintassi VHDL a test.vhd (29), accanto al testo "<="; aspettavo "e poi"Errore (10.500): Errore di sintassi VHDL a test.vhd (36), accanto al testo "<="; aspettavo "e poi"Errore (10.500): Errore di sintassi VHDL a test.vhd (43), accanto al testo "<="; aspettavo "e poi"Errore (10.500): Errore di sintassi VHDL a test.vhd (50), accanto al testo "<="; aspettavo "e poi"Errore (10.500): Errore di sintassi VHDL a test.vhd (57), accanto al testo "<="; aspettavo "e poi"Errore (10.500): Errore di sintassi VHDL a test.vhd (64), accanto al testo "<="; aspettavo "e poi"
il mio codice è il seguente:

Library IEEE;
Use IEEE.std_logic_1164.ali;
USE IEEE.numeric_std.ali;
uso ieee.std_logic_unsigned.all;
uso ieee.std_logic_arith.all;

Entità è primo

PORT
(
SECTOR1: in std_logic_vector (2 downto 0);
CONTE: in std_logic_vector (12 downto 0);
A: in std_logic_vector (12 downto 0);
B: in std_logic_vector (12 downto 0);
- C: in std_logic_vector (12 downto 0);
PWM_CSR: OUT std_logic_vector (5 downto 0)
);

END prima;

ARCHITETTURA DI RTL prima è

BEGIN
CMP1: PROCESSO (SECTOR1, CONTE, A, B)
BEGIN
SECTOR1 CAUSA
Quando "001" => IF COUNT <= A allora
PWM_CSR <= "100001";
Elsif a count <<= A B allora
PWM_CSR <= "110000";
ELSE
PWM_CSR <= "100100";
END IF;
Quando "010" => IF COUNT <= A allora
PWM_CSR <= "110000";
Elsif a count <<= A B allora
PWM_CSR <= "011000";
ELSE
PWM_CSR <= "010010";
END IF;
Quando "011" => IF COUNT <= A allora
PWM_CSR <= "011000";
Elsif a count <<= A B allora
PWM_CSR <= "001100";
ELSE
PWM_CSR <= "001001";
END IF;
Quando "100" => IF COUNT <= A allora
PWM_CSR <= "001100";
Elsif a count <<= A B allora
PWM_CSR <= "000110";
ELSE
PWM_CSR <= "100100";
END IF;
QUANDO "101" => IF COUNT <= A allora
PWM_CSR <= "000110";
Elsif a count <<= A B allora
PWM_CSR <= "000011";
ELSE
PWM_CSR <= "010010";
END IF;
Quando "110" => IF COUNT <= A allora
PWM_CSR <= "000011";
Elsif a count <<= A B allora
PWM_CSR <= "100001";
ELSE
PWM_CSR <= "001001";
END IF;
Quando gli altri => NULL;
END CASE;
FINE PROCESSO CMP1;
END rtl;Aggiunto dopo 46 minuti:please help me, I'm waiting online!grazie

lchtan ha scritto:

Sto incontrando qualche difficoltà nel mio programmazione VHDL, il sistema (qu (a) RTU II Version6.1) punti vi siete errore di sintassi nel mio codice, ma non so dove sia gli errori.
Please help me, grazie !!!!!Errore (10.500): Errore di sintassi VHDL a test.vhd (29), accanto al testo "<="; aspettavo "e poi"
Errore (10.500): Errore di sintassi VHDL a test.vhd (36), accanto al testo "<="; aspettavo "e poi"
Errore (10.500): Errore di sintassi VHDL a test.vhd (43), accanto al testo "<="; aspettavo "e poi"
Errore (10.500): Errore di sintassi VHDL a test.vhd (50), accanto al testo "<="; aspettavo "e poi"
Errore (10.500): Errore di sintassi VHDL a test.vhd (57), accanto al testo "<="; aspettavo "e poi"
Errore (10.500): Errore di sintassi VHDL a test.vhd (64), accanto al testo "<="; aspettavo "e poi"

il mio codice è il seguente:Library IEEE;

Use IEEE.std_logic_1164.ali;

USE IEEE.numeric_std.ali;

uso ieee.std_logic_unsigned.all;

uso ieee.std_logic_arith.all;Entità è primoPORT

(

SECTOR1: in std_logic_vector (2 downto 0);

CONTE: in std_logic_vector (12 downto 0);

A: in std_logic_vector (12 downto 0);

B: in std_logic_vector (12 downto 0);

- C: in std_logic_vector (12 downto 0);

PWM_CSR: OUT std_logic_vector (5 downto 0)

);END prima;ARCHITETTURA DI RTL prima èBEGIN

CMP1: PROCESSO (SECTOR1, CONTE, A, B)

BEGIN

SECTOR1 CAUSA

Quando "001" => IF COUNT <= A allora

PWM_CSR <= "100001";

Elsif a count <<= A B allora

PWM_CSR <= "110000";

ELSE

PWM_CSR <= "100100";

END IF;

Quando "010" => IF COUNT <= A allora

PWM_CSR <= "110000";

Elsif a count <<= A B allora

PWM_CSR <= "011000";

ELSE

PWM_CSR <= "010010";

END IF;

Quando "011" => IF COUNT <= A allora

PWM_CSR <= "011000";

Elsif a count <<= A B allora

PWM_CSR <= "001100";

ELSE

PWM_CSR <= "001001";

END IF;

Quando "100" => IF COUNT <= A allora

PWM_CSR <= "001100";

Elsif a count <<= A B allora

PWM_CSR <= "000110";

ELSE

PWM_CSR <= "100100";

END IF;

QUANDO "101" => IF COUNT <= A allora

PWM_CSR <= "000110";

Elsif a count <<= A B allora

PWM_CSR <= "000011";

ELSE

PWM_CSR <= "010010";

END IF;

Quando "110" => IF COUNT <= A allora

PWM_CSR <= "000011";

Elsif a count <<= A B allora

PWM_CSR <= "100001";

ELSE

PWM_CSR <= "001001";

END IF;

Quando gli altri => NULL;

END CASE;

FINE PROCESSO CMP1;

END rtl;
 
Il problema è il <= operatore / assegnazione del segnale:
Da una guida di riferimento:
<quote>
Operatore: <=

Questo simbolo ha due scopi.Quando viene utilizzato in un'espressione sui tipi di scalare e tipi array discreta, è il meno "o uguale a" operatore.Il tipo di risultato di un'espressione che utilizza l'operatore in questo contesto è booleano (cioè, vere o false).In questo contesto, l'espressione "A <= B" restituisce True solo se A è inferiore o uguale a B.

Esempio: LE: = 1 quando A <= B altrimenti 0;

In una dichiarazione di assegnazione del segnale, il simbolo "<=" è l'operatore di assegnamento.Così, l'espressione "TEST_SIGNAL <= 5" significa che il segnale TEST_SIGNAL viene assegnato il valore 5.

Esempio: databus <= 0x "E800";
<unquote>

in linea 29 si è l'espressione
Quando "001" => IF COUNT <= A allora

Vuoi contare per essere assegnati ai Un segnale, o è la vostra intenzione di confrontare Conte con un?

Utilizzando le parentesi a volte aiuta.Se non riscrivere il codice.
Qualcosa di simile:
SE IL CONTE <A 1 POI ...

Hope this helps

 
La ringrazio molto, è mia intenzione mettere a confronto con CONTE A, quindi credo che sia giusto?
che è piuttosto sconcertante!
chi mi può aiutare?
GRAZIElucbra ha scritto:

Il problema è il <= operatore / assegnazione del segnale:

Da una guida di riferimento:

<quote>

Operatore: <=Questo simbolo ha due scopi.
Quando viene utilizzato in un'espressione sui tipi di scalare e tipi array discreta, è il meno "o uguale a" operatore.
Il tipo di risultato di un'espressione che utilizza l'operatore in questo contesto è booleano (cioè, vere o false).
In questo contesto, l'espressione "A <= B" restituisce True solo se A è inferiore o uguale a B.Esempio: LE: = 1 quando A <= B altrimenti 0;In una dichiarazione di assegnazione del segnale, il simbolo "<=" è l'operatore di assegnamento.
Così, l'espressione "TEST_SIGNAL <= 5" significa che il segnale TEST_SIGNAL viene assegnato il valore 5.Esempio: databus <= 0x "E800";

<unquote>in linea 29 si è l'espressione

Quando "001" => IF COUNT <= A alloraVuoi contare per essere assegnati ai Un segnale, o è la vostra intenzione di confrontare Conte con un?Utilizzando le parentesi a volte aiuta.
Se non riscrivere il codice.

Qualcosa di simile:

SE IL CONTE <A 1 POI ...Hope this helps
 

Welcome to EDABoard.com

Sponsor

Back
Top