Pasos de funcionamiento:
A continuación se muestra la programación en verilog que permite la automatización del sistema.
Como se puede observar lo primero que se estable es el módulo principal del programa llamado reactor2.
module reactor2(ral,rac,ve,c_a,vsn,vsd,t,p,s1,h1,h2,h3,r,clk);
output ral,rac,ve,c_a,vsn,vsd; Se definen las salidas del sistema
input s1,h1,h2,h3,r,t,p,clk;Se definen las entradas del sistema, h1 a h3 son los nivel del tanque, t es la temperatura y p la presión máxima del tanque
wire n1,n2,n3,n4,n5,n6,n7;Se definen las conexiones internas
wire r_g,s_g,qb,qa,r_g1,s_g1,r_g2,s_g2,ta,tb,ta1,pa,pa1,pb; Se definen las conexiones internas
//valvula reactivo alcalino; lógica que permite controlar cuando la válvula de reáctivo alcalino se activará (ral)
and(n2,h1,h2);
not(n1,n2);
not(n3,h3);
and(ral,n1,n3,qa);
//rs flip flop start; lógica que permite construir un flip-flop a partir de compuertas or y and para generar la señal de control start (qb)
and(r_g,r,clk);
and(s_g,s1,clk);
nor(qa,r_g,qb);
nor(qb,s_g,qa);
//válvula reactivo acido; lógica que permite controlar cuando la válvula de reactivo ácido se activará (rac)
and(rac,qa,n2,n3);
//válvula de escape; lógica que permite controlar cuando la válvula de escape se activará (ve)
and(n4,h1,h2,h3);
not(n5,n4);
and(n6,qa,n5);
or(ve,n6,pa,ta);
//flip flop temperatura, lógica que permite controlar el sistema cuando la señal de temperatura t se activa
and(r_g1,r,clk);
and(s_g1,t,clk);
nor(ta,r_g1,tb);
nor(tb,s_g1,ta);
//flip flop presion; lógica que permite controlar el sistema cuando la señal de presión p se activa
and(r_g2,r,clk);
and(s_g2,p,clk);
nor(pa,r_g2,pb);
nor(pb,s_g2,pa);
//calentamiento/agitador; lógica que permite controlar cuando el calentador-agitador (c_a) se activará
not(ta1,ta);
and(c_a,qa,ta1,n4);
//valvula salida normal; lógica que permite controlar cuando la válvula de salida normal (vsn) se activará
not(n8,pa);
or(n7,h1,h2,h3);
and(vsn,ta,n7,n8);
//valvula defectuosa; lógica que permite controlar cuando la válvula defectuosa (vsd) se activará
and(vsd,n7,pa);
endmodule; fin de la lógica de control
Luego de haber compilado y simulado el programa las respuesta obtenida es la esperada, como se puede observar a continuacion:
Conclusiones
Como se puede concluir indistintamente del lenguaje empleado para la programacion del control de un sistema, el resultado debe ser el mismo, obteniendo la mismas respuestas deseas .
El lenguaje verilog puede ser de mucha utilidad para desarrollos complejo porque permite una programacion sencilla con menor tiempo de ejecucion si se compara con el leguaje simbolico del Quartus II.
El simulador permite verificar de manera mas precisa el funcionamiento de la lógica programa y corregir y depurar los errores que existan en la misma.
Con el desarrollo de una lógica en Quartus II, ya sea empleando lenguaje simbolico o verilog, para ser implementada en un dispositivo com un PDL o FPGA se logra simplificar de manera significativa los espacios en hardware que ocuparían éstas lógicas si se desarrollaran con circuito convencionales. Por otra parte, se logran reducir los tiempos de ejecución y respuesta del sistema.
Con estas herramiente y un hardware adecuado se pueden desarrollar una gama muy amplia de equipos electrónicos para cualquier aplicación posibles disminuyendo los costos y tiempos de desarrollo.