Cómo escribir verilog al escribir códigos largos, especialmente lógica digital larga y compleja
Módulo superior:
`Escala de tiempo 1ns/1ps
/ Descripción del módulo: pantalla de tubo digital de 7 segmentos, una **** tiene 8 tubos digitales
//***Modo positivo, luz de bajo nivel, el tubo digital utiliza decodificador 3-8: chip 74HC138,
módulo cnt_60
( p>
Lógica de entrada CLK, //Reloj de entrada, frecuencia:
Lógica de entrada RST_n, //Restablecer puerto, reinicio de nivel bajo
Lógica de salida [3: 0] DSEL , //tubería digital de 7 segmentos 8--1 selección correspondiente
Lógica de salida DEN, //Habilitación de tubería digital, nivel alto activo
Lógica de salida [7: 0] led7_out / /Salida de datos, el dígito más bajo es el punto decimal
);
Lógica[26:0] num // será el número que se mostrará
lógica [2:0] punto; //posición del punto decimal del número que se mostrará
always@(posedge CLK, negedge RST_n)
begin
if (!RST_n)
num lt; = 27'd0
else
num = (num ! = 59)?(num 27'd1) : num;
end
LED_7 U_LED_7
(
.CLK (CLK), //Reloj de entrada
.RST_n (RST_n), //Restablecer puerto, reinicio de nivel bajo
.data_num (num), //Datos a mostrar
.data_dot (punto), //Entrada posición del punto decimal de los datos
..DSEL (DSEL), //tubo digital de 7 segmentos 8--1 selección correspondiente
.DEN (DEN), //habilitación del tubo digital, nivel alto válido
.led7_out (led7_ out ) // Salida de datos, el dígito más bajo es el punto decimal
);
.