在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
12
返回列表 发新帖
楼主: laasong

[求助] 請教verilog問題

[复制链接]
发表于 2011-7-7 16:15:36 | 显示全部楼层
/////Just for you test
reg dpi_d1, dpi_d2, dpi_d3;
always @(negedge rstb or posedge clk)
  begin
    if(!rstb)
      {dpi_d3, dpi_d2, dpi_d1} <= 3'b000;
    else
      {dpi_d3, dpi_d2, dpi_d1} <= {dpi_d2, dpi_d1, DPI};
  end

wire dpi_negedge = ~dpi_d2 & dpi_d3;

reg [1:0] cnt;
always @(negedge rstb or posedge clk)
  begin
    if(!rstb)
       cnt <= 2'h0;
    else if((cnt<2'h2) && dpi_negedge)
       cnt <= cnt + 2'h1;
   end

reg CHARGE_EN;
always @(negedge rstb or posedge clk)
  begin
    if(!rstb)
       CHARGE_EN <= 1'b0;
    else if(cnt>= 2'h2)
       CHARGE_EN <= 1'b1;
  end
 楼主| 发表于 2011-7-7 17:36:11 | 显示全部楼层
謝謝各位大大  我會參考學習的~
发表于 2011-7-22 16:43:43 | 显示全部楼层
提供另一种省面积的方法:
   首先,将DPI信号2分频:
   reg div2_dpi;
   always @(negedge DPI or negedge rstn)
        if(~rstn)
           div2_dpi <=  1'b0;
        else
           div2_dpi <= ~div2_dpi;
    然后,使用2分频后信号的下降沿作为触发条件,产生需要的信号,也可以使用latch锁存数据:
   reg change_en_r1;
   always @(negedge div2_dpi or negedge rstn)
        if(~rstn)
           change_en_r1 <=  1'b0;
        else
           change_en_r1 <= 1'b1;
    最后,最好再使用主时钟同步2次,消除亚稳态的影响:
  reg change_en_r2;
   reg change_en;
   always @(negedge DPI or negedge rstn)
        if(~rstn)
         begin
           change_en_r2 <=  1'b0;
           change_en      <=  1'b0;
         end
        else
         begin
           change_en_r2 <= change_en_r1;
           change_en      <= change_en_r2;
         end
发表于 2011-7-27 20:27:27 | 显示全部楼层
一个计数器从0到5计数,DPI就是这个计数器除以2得到的余数?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-15 07:05 , Processed in 0.016929 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表