简单的笔试题:通过Verilog实现以下图形转换:
Verilog通过DFF实现二分频进行获取
电路结构:
module even_divisor
(
input clk_in,
input rstn,
output clk_out,q1,q2
);
//divisor = 2
reg clk1,clk2 ;
always @(posedge clk_in) begin
if(!rstn)
clk1<=0;
else
clk1 <= ~clk1 ;
end
assign q1=clk1;
always @(negedge clk_in) begin
if(!rstn)
clk2<=0;
else
clk2 <= ~clk2 ;
end
assign q2=clk2;
assign clk_out = clk1&clk2 ;
endmodule
TestBench:
`timescale 1ns/1ps
module test ;
reg clk_100mhz ;
reg rstn ;
wire q1;
wire q2;
initial begin
clk_100mhz = 0 ;
rstn = 0 ;
#11 rstn = 1 ;
#200 $finish;
end
always #(5) clk_100mhz = ~clk_100mhz ;
wire clk_div2;
even_divisor u_even_divisor(
.rstn(rstn),
.clk_in(clk_100mhz),
.clk_out(clk_div2),
.q1(q1),
.q2(q2)
);
endmodule
波形: