Programación Específica > Lenguaje de Descripción de Hardware VHDL
Transmitir Una Ristra De 10 Bits, Bit A Bit
(1/1)
xernovil:
Hola, me gustaría saber si alguien me puede ayudar en la programación de un módulo que contiene:
Entradas:
Trama: 10 bits en paralelo que salen de otro módulo
Reset global del sistema
clk: reloj que vendrá generado por el módulo clk16 de la parte de recepción
Load: Solo será necesario que esté a '1' para iniciar el envio de la trama, cada vez que queramos enviar una trama deberemos hacer un pulso en Load
Enable: podrá tener dos valores, si está en '1' estará en reposo, si está en '0' funcionará.
Salidas:
-TxD(databit):Es la línea de datos que irá a parar a la parte receptora del otro extremo, los datos salen en serie.
es decir, esto resultaría ser un conversor Paralelo-in Serie-out.
Este módulo sería una parte del bloque transmisión de un sistema de comunicación mediante RS232.
Gracias por vuestra ayuda.
xernovil:
Bueno, ya he logrado hacerlo por mi propia cuenta, por si a alguien le interesa saber cual sería el código, pues bién, sería el siguiente:
Entity PISO is
port(trama:in std_logic_vector(9 downto 0);
reset, clk, load, enable:in std_logic;
TxD:out std_logic
);
end PISO;
Architecture ARC_PISO of PISO is
begin
signal S: std_logic_vector(9 downto 0);
process(trama,reset,clk,load,enable)
begin
if reset='1' then
TxD='0';
elsif enable = '0' then
if (clk='1' and clk'event) then
if load='1' then
TxD <= S(0) & S(9 downto 0);
endif;
endif;
endif;
end process;
end ARC_PISO;
Navegación
Ir a la versión completa