Descargar

Picoblaze: Microcontrolador Embebido de 8 bits (página 2)

Enviado por Pablo Turmero


Partes: 1, 2
edu.red

Picoblaze Operaciones de entrada: Temporización

edu.red

Picoblaze Operaciones de salida: Lógica de la interfaz

edu.red

Picoblaze Operaciones de salida: Lógica de la interfaz

edu.red

Picoblaze Operaciones de salida: Temporización

edu.red

Picoblaze Proceso básico de diseño

1. Escritura del programa en código assembly. El archivo poseerá la extensión ”psm” (por ejemplo programa.psm) 2. Ensamblado del archivo ”psm”. Se utiliza la aplicación KCPSM3.exe, que genera un archivo “vhd” (con el mismo nombre que el del archivo “psm”, por ejemplo programa.vhd) que contiene la descripción de la memoria de instrucciones c:>KCPSM3AssemblerKCPSM.exe programa.psm -> programa.vhd 3. Inclusión de los archivos .vhd correspondientes al módulo del picoblaze y de la memoria de instrucciones, en un proyecto creado con el ISE 4. Generación del bitsteam (archivo de programación)

edu.red

Picoblaze Declaración del componente kcpsm3

component kcpsm3 port ( address : out std_logic_vector(9 downto 0); instruction : in std_logic_vector(17 downto 0); port_id : out std_logic_vector(7 downto 0); write_strobe : out std_logic; out_port : out std_logic_vector(7 downto 0); read_strobe : out std_logic; in_port : in std_logic_vector(7 downto 0); interrupt : in std_logic; interrupt_ack : out std_logic; reset : in std_logic; clk : in std_logic ); end component;

edu.red

Picoblaze Declaración del componente bloque de memoria

component myprog port ( address : in std_logic_vector(9 downto 0); instruction : out std_logic_vector(17 downto 0); clk : in std_logic ); end component; (Gp:) Nombre derivado del archivo .psm

edu.red

Picoblaze Ejemplo de código assembly

El siguiente ejemplo implementa la lectura de los switches del kit y muestra cada valor a través de los leds del mismo

; Definición de las direcciones de los puertos CONSTANT switch_in , 00 ; puerto de entrada (switches) CONSTANT leds_out , 01 ; puerto de salida (leds)

; Inicio start: INPUT s0, 00 ; se leen los switches y se lo almacena ; en el registro s0 OUTPUT s0, leds_out ; se escribe el contenido del registro s0 ; al puerto de salida (leds) JUMP start ; loop back to start

edu.red

Picoblaze Multiplicación con operandos de 8 bits

– Utilizando el Core Generator para instanciar un bloque multiplicador

edu.red

Picoblaze mult_8x8: NAMEREG s0, multiplicando NAMEREG s1, multiplicador NAMEREG s3, result_msb ; MSB del resultado NAMEREG s4, result_lsb ; LSB del resultado ; ; Definicion de los puertos como constantes CONSTANT multiplicador_lsb, 00 CONSTANT multiplicador_msb, 01 ; ; Envio del multiplicando y del multiplicador a los registros de la FPGA conectados ; a las entradas del bloque multiplicador OUTPUT multiplicando, multiplicador_lsb OUTPUT multiplicador, multiplicador_msb ; ; Entrada del resultado emitido por el bloque multiplicador. INPUT result_lsb, multiplicador_lsb INPUT result_msb, multiplicador_msb Multiplicación con operandos de 8 bits

– Código assembly

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente