Picoblaze Operaciones de entrada: Temporización
Picoblaze Operaciones de salida: Lógica de la interfaz
Picoblaze Operaciones de salida: Lógica de la interfaz
Picoblaze Operaciones de salida: Temporización
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)
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;
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
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
Picoblaze Multiplicación con operandos de 8 bits
– Utilizando el Core Generator para instanciar un bloque multiplicador
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
Página anterior | Volver al principio del trabajo | Página siguiente |