-
Notifications
You must be signed in to change notification settings - Fork 200
Capítulo 2: De un bit a datos. Fport

Ejemplos de este capítulo en github
Ahora en vez de 1 bit sacaremos 4, y los mostraremos por los leds. Se trata de un valor fijo, que está "cableado por hardware". Si queremos visualizar otro número por los leds, habrá que sintentizar otro circuito.
Este componente lo denominaremos Fport (Fixed port). Tiene un bus de salida de 4 bits, etiquetado como data, que está cableado al valor binario 1010
Este circuito es muy parecido al del tutorial anterior (setbit.v) pero en vez de tener 1 bit de salida tiene 4. Se describe así:
//-- Fichero Fport.v
module Fport(output [3:0] data);
//-- La salida del modulo son 4 cables
wire [3:0] data;
//-- Sacar el valor por el bus de salida
assign data = 4'b1010; //-- 4'hA
endmodule
La salida ahora es un array de 4 cables. Esto se denota poniendo [3:0] delante del nombre. Para realizar la asignación escribimos el número en binario usando la notación de Verilog: Primero el número de bits, luego el carácter ', a continuación la base del número (b para binario) y por último los 4 dígitos binarios. Este mísmo número se podría expresar mediante un único dígito hexadecimal mediante: 4'hA. También lo podriamos poner en decimal como 4'd10
Cada uno de los 4 bits de la salida data se saca por los pines de la fpga donde están conectados los 4 leds:
Esto se especifica en el fichero Fport.pcf:
set_io data[0] 99
set_io data[1] 98
set_io data[2] 97
set_io data[3] 96
Para realizar la síntesis entramos en el directorio tutorial/T02-Fport y ejecutamos el comando make sint:
$ make sint
Ahora descargamos en la fpga el fichero Fport.bin:
$ sudo iceprog Fport.bin
Al terminar, dos leds estarán encendidos y dos apagados, ya que estamos enviando el valor 1010:

0 You are leaving the privative sector (EN)
1 ¡Hola mundo! (EN) (RU)
2 De un bit a datos (EN)
3 Puerta NOT (EN)
4 Contador de 26 bits (EN)
5 Prescaler de N bits (EN)
6 Múltiples prescalers (EN)
7 Contador de 4 bits con prescaler (EN)
8 Registro de 4 bits (EN)
9 Inicializador (EN)
10 Registro de desplazamiento (EN)
11 Multiplexor de 2 a 1 (EN)
12 Multiplexor de M a 1 (EN)
13 Inicializando registros (EN)
14 Registro de N bits con reset síncrono
15 Divisor de frecuencias
16 Contador de segundos
17 Generando tonos audibles
18 Tocando notas
19 Secuenciando notas
20 Comunicaciones serie asíncronas
21 Baudios y transmisión
22 Reglas de diseño síncrono
23 Controladores y autómatas finitos
24 Unidad de transmisión serie asíncrona
25 Unidad de recepción serie asíncrona
26 Memoria ROM
27 Memoria ROM genérica
28 Memoria RAM
29 Puertas triestado
30 Hacia el microprocesador y más allá