Verilog code

1、计数,用于对精度不高的计数

always @(posedge clk or negedge rst_n)
begin
    if(!rst_n)
        div_cnt <= 1'd0;
    else
        div_cnt <= div_cnt + 1'b1;
end

assign  div_clk = div_cnt[8];       //div_cnt < 100

2、检测边沿

//--------------------------------
//Funtion : detect  start pos

always @(posedge clk or negedge rst_n)
begin
    if(!rst_n)
        pos_arr <= 1'd0;
    else
        pos_arr <= {pos_arr[1:0] ,estart };
end

assign  start = pos_arr[1] & ~pos_arr[2]

 3、声明的不同最好在注释上面体现出来,而不是在变量名

//localparam        BAUD_END        =        5207            ;        //9600bps
localparam        BAUD_END        =        433                ;        //115200bps

4、组合数据,少使用了寄存器资源

always @(posedge clk_24m or negedge rst_n)
begin
    if(!rst_n)
        ov7670_data_out <= 1'd0;
    else if(cnt_byte == 1'b1)
        ov7670_data_out <= {ov7670_data_out[15:8] , ov7670_data};
    else 
        ov7670_data_out <= {ov7670_data , 8'd0};
end

 

。。。。待续

转载于:https://www.cnblogs.com/bixiaopengblog/p/7499098.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值