先上code
module div3(
input clk,
output div3_clk
//output reg rising_clk=1'd0,falling_clk=1'd0
);
////rising edge part
reg [1:0]counter_rising=2'd0;
reg rising_clk=1'd0;
//counter
always@(posedge clk)
begin
if (counter_rising==2'd2) counter_rising<=1'd0;
else counter_rising<=counter_rising+1'd1;
end
//div
always@(posedge clk)
begin
if (counter_rising==2'd2) rising_clk<=1'd1;
else rising_clk<=1'd0;
end
////falling edge part
reg [1:0]counter_falling=2'd0;
reg falling_clk=1'd0;
//counter
always@(negedge clk)
begin
if (counter_falling==2'd2) counter_falling<=1'd0;
else counter_falling<=counter_falling+1'd1;
end
//div
always@(negedge clk)
begin
if (counter_falling==2'd2) falling_clk<=1'd1;
else falling_clk<=1'd0;
end
//combinational
assign div3_clk=(falling_clk|rising_clk);
endmodule
畫圖會更好理解 建議畫一下 一個正緣一個負緣計數器 0~2的計數器
當數到2的時候為1 其他為0 正負緣都是一樣
最後輸出再把他or起來
剛好可以湊一個0.5clk
/* Filename : top_module.v Simulator : Quartus II 20.1 ModelSim 2020.1 scription : 第二版Transducer控制電路 Release : Aug.30,2021 */ module top_module (
Aug 31, 2021module vga_driver ( input I_clk , input I_rst_n , output reg [7:0] O_red , output reg [7:0] O_green , output reg [7:0] O_blue , output O_hs , output O_vs , output reg O_clk_25M,
Aug 27, 2021maincode module transducer_control_demo( input i_clk, input i_reset, output reg o_ch1 //之後還要output更多的channel(同時) ); //===================================================
Aug 25, 2021/* =============================================================== Filename : spi_top_module.v Simulator : Quartus II 20.1 ModelSim 2020.1 scription : spi controller Release : Aug.20,2021 =============================================================== */ module spi_top_module(
Aug 24, 2021or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up