Académique Documents
Professionnel Documents
Culture Documents
A:
Ricardo Andres Velasquez Velez
Introduccin
En informes anteriores manejamos circuitos cuyas salidas estaban
exclusivamente en funcin de sus entradas o mejor llamados circuitos
combinacionales. Para este laboratorio es necesario utilizar otra
metodologa ya que las salidas no van a depender de las entradas sino que
son cambiantes dependiendo de unas seales y estados cambiantes, para
ello manejaremos la lgica secuencial.
Sistemas secuenciales:
A diferencia de los sistemas combinacionales, en los sistemas secuenciales,
los valores de las salidas, en un momento dado, no dependen
exclusivamente de los valores de las entradas en dicho momento, sino
tambin dependen del estado anterior o estado interno. El sistema
secuencial ms simple es el biestable, de los cuales, el de tipo D (o cerrojo)
es el ms utilizado actualmente. La mayora de los sistemas secuenciales
estn gobernados por seales de reloj. A stos se los denomina "sncronos"
o "sincrnicos", a diferencia de los "asncronos" o "asincrnicos" que son
aquellos que no son controlados por seales de reloj.
Los principales sistemas secuenciales los cuales podemos encontrar en
forma de circuitos integrados o como estructuras en sistemas programados
son: Contadores y registros.
Poseen uno o ms caminos de realimentacin, es decir, una o ms seales
internas o de salida se vuelven a introducir como seales de entradas.
Gracias a esta caracterstica se garantiza la dependencia de la operacin con
la secuencia anterior.
Como es lgico, existe una dependencia explcita del tiempo. Esta
dependencia se produce en los lazos de realimentacin antes mencionados.
En estos lazos es necesario distinguir entre las salidas y las entradas
realimentadas. Esta distincin se traducir en un retraso de ambas seales
(en el caso ms ideal), como se puede ver en la figura 1.2, el cual puede
producirse mediante dos elementos:
Elementos de retraso, ya sean explcitos o implcitos debido al retraso
de la lgica combinacional. Este retraso es fijo e independiente de
cualquier seal.
Procedimiento
El sistema escogido es el siguiente:
Cronometro: Disear un cronometro con minutos, segundos y centsimas de
segundo. El cronometro tendr un pulsador de start, uno de stop y otro para
el reset. Los minutos deben visualizarse en los leds de la FPGA en formato
BCD, los segundos y las centsimas de segundo deben visualizarse en los
displays de 7 segmentos de la FPGA.
Diagrama de bloques del sistema:
Modulo cabecera
Diseo:
El primer bloque que diseamos fue el divisor de frecuencia para convertir
la frecuencia de 50Mhz suministrada por la seal de reloj de la FPGA a la
deseada.
El divisor de frecuencia es un componente simple, cuyo objetivo es reducir
la frecuencia de entrada. ste se implementa con ayuda del factor de
escalamiento y un contador. Primeramente, el factor de escalamiento es la
relacin entre la frecuencia de entrada y la frecuencia de salida deseada:
En nuestro caso necesitamos una frecuencia de 100 ciclos por segundo (100
Hercios) tenemos:
=
50
= 500000
100
Tomado de:
https://www.cs.sfu.ca/~ggbaker/reference/std_logic/arith/conv_std_logic_
vector.html
Deco segmentos:
Estas variables irn a las salidas del controlador que llamamos nodo (4bits)
y segmentos (7bits) y en el mdulo para poder as en el mdulo cabecera en
el cual instanciaremos este controlador conectarlas directamente a los pines
as:
Todo este proceso que acabamos de explicar se debe dar en un tiempo muy
rpido para que engae al ojo humano al encender y apagar los nodos que
seleccionan cada display pero la frecuencia de encendido/apagado de los
nodos no debe ser tan elevada, pues a medida de que aumenta la
frecuencia, aumenta el comportamiento capacitivo de los LEDs que
conforman el display. Una frecuencia de unos cientos de Hz se considera
adecuada para operar el display. Encontramos que una seal de reloj
adecuada y recomendada para manejar el contador que maneja el
controlador es de 1khz por lo cual creamos un divisor de voltaje de 50mhz a
1khz como el creado al inicio para poder usarlo aqu.
Simulacin de cada modulo
_Contador mdulo 10 con start y stop:
Probamos de una vez el reset y funciona muy bien, esta seal de rst fue
implementada en todos los contadores y conectadas todas a el botn que
usaremos para el reset del cronometro.
Timing Report
_ Contador mdulo 6:
Timing report
Timing Report
Timing Report
Conclusiones
La seal de reset es una seal indispensable en cualquier sistema
digital ya que con ella podemos darle al sistema un valor inicial en caso
de no poseerlo o si necesitamos reutilizar o ejecutar de nuevo el
sistema lo podemos hacer sin necesidad de apagar y encender todo.
Bibliografa
http://stackoverflow.com/questions/15205202/clkevent-vs-risingedge
http://www.ics.uci.edu/~jmoorkan/vhdlref/sig_dec.html
http://www.estadofinito.com/divisor-frecuencia-vhdl/
http://foro.make-a-tronik.com/fpga/(codigo-vhdl)-contador-0-fcuadruple-en-display-7-segmentos/
https://www.cs.sfu.ca/~ggbaker/reference/std_logic/arith/conv_std
_logic_vector.html
https://es.wikipedia.org/wiki/Sistema_secuencial
http://www.uhu.es/raul.jimenez/DIGITAL_II/dig2_i.pdf