En este ejercicio vamos a hacer un contador  de 4 bits, para lo cual vamos a tener que crear nosotros mismos un decodicificador.
Comenzamos creando un nuevo proyecto desde “File/New Project”, lo pondremos el nombre de “contador4bit” y lo configuraremos como en el ejercicio anterior .







Tras crear nuestro proyecto, daremos click derecho sobre el y seleccionaremos “New Source” ,elegiremos “Schematic” y lo pondremos el nombre “contador4bit”.
Cogemos el componente CB4CE y lo colocamos en nuestro esquemático.







Si queremos, podemos obtener más información sobre el mismo dando clic derecho sobre el componente y seleccionando “Object Properties” y “Symbol Info”.








Ahora vamos a crear nuestro decodificador, al cual llamaremos “deco”.
Para ello vamos a “Project Navigator” y seleccionamos “New Source” y “Schematic”.








Lo primero que haremos será crear un Bus, para ello dibujaremos una línea normal, pero la nombraremos Q(3:0),  lo cual significa  que tiene cuatro conexiones, de la 0 a la 3, con ese nombre automáticamente se convierte en Bus.









Para conexionar el Bus utilizaremos la herramienta “Add Bus Tap”.









Lo conectaremos y a continuación iremos colocando las  puertas INV y AND4 .









Tras realizar todas las conexiones nuestro esquema quedará así.








Ahora vamos a poner nombres a las conexiones del Bus, cada conexión se llamara Q(x), siendo “X” un valor entre 0 y 3.








Seguidamente pondremos nombres a las salidas de las AND, desde Led0 hasta Led9.








Finalmente añadimos las marcas I/O  para convertirlos en pines.









Con esto ya tenemos el decodificador creado, ahora vamos a generar el símbolo para poderlo utilizar en el esquema  del contador. Para ello guardamos los cambios y seleccionamos “Create Schematic Symbol”.










Ahora vamos al esquema general “Contador4bit” e insertamos el deco y hacemos el mismo procedimiento que anteriormente para conectar el Bus.










Seguidamente pondremos un buffer “BUFG en el reloj, una puerta “AND2” para que haga un reset  al pasarse de 9 , los nombres de las entradas y salidas y sus marcas.









Ahora crearemos el fichero “Test Bench Waveform” para la simulación.








Para ello damos clic derecho sobre el proyecto y seleccionamos “New Source”. Lo llamaremos “tb_contabin”.
Seleccionamos “contador4bit”.








Lo configuramos así, poniendo 2500 ns,  para que dé tiempo a ver el ciclo completo.








Ahora configuramos el estado de las entradas para la simulación funcional.








Para comenzar con la simulación pulsamos “Simulate Behavioral  VHDL Model”, pero antes lo configuraremos para 2500ns.










Nos mostrara la simulación sin los retardos reales del tiempo.








Para verlo con los tiempos reales hay que ir a “ Post-Fit Simulation” y seleccionar “Simulate Post- Fit Mode”.








Seguidamente vamos a colocar los pines en sus sitios reales. Para ello configuramos el “.ucf” para que nos meta directamente en el entorno  PACE” .  Esto lo haremos en “Edit” y “Preferences” .








Damos doble clic en el “.ucf” y nos entrará en el entorno “PACE” , ahí colocaremos las entradas y las salidas en sus patillas correspondientes.








Podemos ver después un documento con la asignación de las entradas y salidas en “Edit Constraints” .








Creamos el “Fit “ con todos los datos del programa.








Generamos el “.JED  ejecuntando “Generate Programming File” .