Você está na página 1de 2

Prticas estabelecidas no uso do VHDL

Sempre usar lgica positiva


As ferramentas tm a liberdade de mudar a polaridade para a forma mais eficiente. No necessrio
ento misturarmos logicas positiva e negativa em um cdigo. Caso um sinal de entrada seja ativo
baixo, crie um sinal interno e o ligue atravs de um comando do tipo
sinalinterno <= NOT sinalexternoativobaixo;

Em um comando ENTITY listar um sinal por linha


Esta conveno induz a descries da interface mais intelgiveis.
ENTITY contador IS
PORT( clk
rst
load:
inc
input
cnt
);
END ENTITY contador;

:
:
:
:
:
:

IN
IN
IN
IN
IN
OUT

std_logic;
-- relgio transio positiva
std_logic;
-- reset assincrono
std_logic;
-- carrega o valor de INPUT em CNT
std_logic;
-- incrementar contador
std_logic_vector(5 downto 0); -- entrada no caso de load ativo
std_logic_vector(5 downto 0); -- saida do contador

Todas as interfaces devem ser do tipo std_logic ou std_logic_vector


Isto torna muito mais fcil a interconexo de diferentes mdulos. Tambm torna desnecessrio o uso
de definies de bibliotecas adicionais nas entidades que definem as interconexes.

As interfaces devem ser do tipo IN ou OUT


Isto torna muito mais fcil a interconexo de diferentes mdulos. O uso de sinais do tipo BUFFER
dificulta desnecessariamente este processo. Somente em caso de barramentos usar INOUT!
No caso de um sinal de sada ter que ser acessado internamente criar um sinal para uso interno e
fazer uma atribuio.
sinalsaida <= sinalinterno; --

somente usar sinalinterno no cdigo

Usar sempre que possvel a biblioteca numeric_std


Esta a nica forma padronizada. As bibliotecas std_arith, std_logic_arith, std_logic_numeric, entre
outras, tm variaes que podem introduzir erros difceis de serem detectados.

Em vetores o bit menos significativo deve ter ndice 0


a conveno atualmente mais usada. Um leitor moderno vai assumir que o cdigo foi escrito com
esta conveno.

Como regra, usar transio positiva para o relgio


a conveno atualmente mais usada. Um leitor moderno vai assumir que o cdigo foi escrito com
esta conveno.

Seja consistente na codificao


O VHDL no distingue smbolos em caixa alta ou baixa. Para facilitar a leitura, siga de forma
consistente um esquema de codificao. Os mais usados so:

Palavras-chave em maisculo e os demais em minsculo

Palavras-chave em minsculo e os demais em maisculo

Tudo em minsculo

Use um esquema de indentao


Embora no faa diferena para o compilador, muito importante usar um esquema de indentao
com um comando por linha.
PROCESS(clk,rst)
BEGIN
IF rst = '1' THEN
contador <= 0;
ELSIF rising_edge(clk) THEN
contador <= contador + 1;
END IF;
END PROCESS;

Você também pode gostar