Diseño VHDL de cascada de contador decimal
Como sigue
BIBLIOTECA IEEE
USE IEEE.STD_LOGIC_1164.ALL <; /p>
USE IEEE.STD_LOGIC_UNSIGNED.
El contador ENTITY ES
PORT( RST, EN, CLK: IN STD_LOGIC;
OC: OUT STD_LOGIC ;
p>Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
CONTADOR FINAL;
ARQUITECTURA bhv DEL contador ES
COMENZAR
PROCESO(RST, EN, CLK)
VARBLE TMP: STD_LOGIC_VECTOR(3 DOWNTO 0);
VARIABLE TMP: STD_LOGIC_VECTOR(3 DOWNTO 0);
COMENZAR
IF RST='1' ENTONCES TMP:='0000';OClt;='0';
ELSIF EN='0' ENTONCES NULL
p>ELSIF CLK'EVENT AND CLK='1' THEN
IF TMP=9 THEN OClt;='1';TMP:="0000"
ELSE; TMP:=TMP 1 ;OClt;='0';
FIN
FIN
Qlt;=TMP; p>END PROCESS;
END bhv;
Esta es la declaración de ejemplo de más alto nivel, puede usar declaraciones generadas, pero aquí se usa una declaración de ejemplo simple
Además, también le proporcionamos otra forma de onda de simulación
BIBLIOTECA IEEE;
USE IEEE.STD_LOGIC_1164.all;
Utilice IEEE.STD._logic_unsigned.all ;
ENTIDAD jsq10 ES
PUERTO(RST, EN, CLK: EN STD_LOGIC;
Q1, Q2, Q3, Q4, Q5, Q6: OUT STD_LOGIC_VECTOR (3 DOWNTO 0));
end jsq10;
ARQUITECTURA BHV de jsq10 es
SEÑAL OC2, OC3, OC4, OC5, OC6, OC7:
Contador de componentes
PORT( RST, EN, CLK: IN STD_LOGIC;
OC: OUT STD_LOGIC;
Q: OUT STD_LOGIC_VECTOR( 3 DOWNTO 0));
END componente;
comenzar
u1. Contador PUERTO MAP(RST=gt; RST, EN=gt; EN, CLK =gt; CLK, Q=gt; Q1, OC=gt; OC2);
u2: contador PUERTO MAP(RST=gt; RST, EN=g
t; EN, CLK = gt; OC2, Q = gt; Q2, OC = gt; u3: Contador PUERTO MAP (RST = gt; RST, EN = gt; EN, CLK); gt; OC3, Q=gt; Q3, OC=gt; OC4);
u4: contador PUERTO MAP(RST=gt; RST, EN=gt; EN, CLK=gt; OC4); /p>
u4: Mapeo antipuerto (RST=gt; RST, EN=gt; EN, CLK=gt; OC6, Q=gt; Q6, OC=gt; OC7);
Fin BHV