EDA (Quartus II) -Diseño de divisor de frecuencia CNC

Tabla de contenido

Objetivo:

Vista previa del experimento:

Explicación experimental: diseño de divisor de frecuencia

Diseño de divisor par (tome el divisor 6 como ejemplo)

El diseño del divisor de frecuencia impar (tome el divisor de frecuencia 9 como ejemplo)

30 diseño de divisor

Contenido del experimento: diseño de divisor de frecuencia de control numérico

Código fuente

Forma de onda de simulación

Verificación de hardware

después de la tarea de clase

 Resumen del experimento


Objetivo:

Aprenda los métodos de diseño, análisis y prueba del divisor de frecuencia de control numérico y practique el diseño y la aplicación del contador.

Vista previa del experimento:

Familiarizado con el diseño del contador; entienda cómo usar el contador para realizar el diseño del divisor de frecuencia.

Explicación experimental: diseño de divisor de frecuencia

Considere dos preguntas:

P: ¿Qué es un divisor de frecuencia y cuál es el coeficiente de división de frecuencia?

R: El circuito que puede convertir la señal de alta frecuencia clk en la señal de baja frecuencia clk_1 se llama divisor de frecuencia. Si el período de la señal clk_1 es n veces el período de clk, entonces n es el coeficiente de división de frecuencia)

P: ¿Cuál es la idea central del diseño de divisores de frecuencia?

A: el diseño del mostrador)

Diseño de divisor par (tome el divisor 6 como ejemplo)

module dvf6(clk,clk_1);
input	clk;
output	reg	clk_1;
reg[2:0]	q;
always@(posedge	clk)
begin
	if(q==3'b101)	q<=3'b000;
	else	q<=q+1;
end
always@(q)
begin
	if(q>=3b'011)	clk_1<=1'b1;
	else	clk_1<=1'b0;
end
endmodule


另一种设计方案
module dvf6(clk,clk_1);
input	clk;
output	reg	clk_1;
reg[2:0]	q;b
always@(posedge	clk)
begin
	if(q==3'b010)	begin	q<=q+3'b001;  clk_1<=~clk_1;end
	else if	(q==3'b101)	begin q<=3'b000;  clk_1<=~clk_1;end
	else	q<=q+3'b001;
end
endmodule

El diseño del divisor de frecuencia impar (tome el divisor de frecuencia 9 como ejemplo)

module	dvf9(clk,clk_1);
input	clk;
output	clk_1;
reg[3:0]	q1,q2;
reg	clk_p,clk_n;
always@(posedge clk)
begin
	if(q1==4'b100)	begin	q1<q1+4'b0001;clk_p<=~clk_p;end
	else if(q1==4'b1000)	begin	q1<=4'b0000;clk_p<=~clk_p;end
	else	q1<=q1+4'b0001;
end
alway@(negedge clk)
begin
	if(q2==4'b0100)	begin	q2<=q2+4'b0001;clk_n<=~clk_n;end
	else if	(q2==4'b1000)	begin	q2<=4'b0000;clk_n<=~clk_n;end
	 else	q2<=q2+4b'0001;
end
always@(negedge	clk)
begin
	if(q2==4b'0100)	begin	q2<=q2+4'b0001;clk_n=~clk_n;end
	else if(q2==4'b1000)	begin	q2<=4'b0000;clk_n<=~clk_n;end
	else	q2<=q2+4'b0001;
end
assign	clk_1=clk_p|clk_n;
endmodule

30 diseño de divisor

module dvf_30(clk,clk_1);
input	clk;
output	reg	clk_1;
reg[4:0]	q;
always@(posedge	clk)
begin
	if(q==5'b11101)	q<=5'b00000;
	else	q<=q+1;
end
always@(q)
begin
	if(q>=4'b1111)	clk_1<=1'b1;
	else	clk_1<=1'b0;
end
endmodule

Contenido del experimento: diseño de divisor de frecuencia de control numérico

La función del divisor de frecuencia de control numérico es que cuando se dan diferentes datos de entrada en el terminal de entrada, la señal del reloj de entrada tendrá diferentes relaciones de división de frecuencia. El divisor de frecuencia de control numérico está diseñado con un contador de suma cuyo valor de conteo se puede preestablecer en El método consiste en conectar el bit de desbordamiento de conteo con la señal de entrada de carga de número preestablecido.

Código fuente

module	dvf_suk(clk,D,fout,full_1);
input	clk;
input	[7:0]	D;
output	reg	fout;
reg[7:0]	reg8;
reg	full;
output full_1;
always@(posedge clk)
begin
	if(reg8==8'hff)	begin	reg8<=D;full<=1'b1; end
	else	begin	reg8<=reg8+8'b1;full<=1'b0; end
end
always@(posedge full)
begin
	fout<=~fout;
end
assign full_1=full;
endmodule

Forma de onda de simulación

Verificación de hardware

Al diseñar la función del divisor de frecuencia de control numérico, puede elegir el modo de circuito experimental 1, en el que la tecla 2 / tecla 1 es responsable de ingresar el número preestablecido de 8 bits D (PIO7 ~ PIO0); CLK es ingresado por clockB0, y la frecuencia es 65536Hz o superior (para asegurar la división después de que la frecuencia cae en el rango de audio); la salida se conecta al terminal de entrada de la señal del zumbador. Cambie el valor de entrada de la tecla 2 / tecla 1 y podrá escuchar sonidos de diferentes tonos.

después de la tarea de clase

Un circuito se diseña utilizando dos módulos divisores de frecuencia controlados numéricamente, de modo que el ancho del ancho de pulso positivo y negativo de la salida de onda cuadrada esté controlado por dos datos de entrada de 8 bits respectivamente.

Esquema de referencia

 

Forma de onda de simulación

 Resumen del experimento

Supongo que te gusta

Origin blog.csdn.net/XZ_ROU/article/details/113711497
Recomendado
Clasificación