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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4744|回复: 25

[求助] 求助,一个简单电路的时序解释,求各位好心人解释下,谢谢!

[复制链接]
发表于 2014-9-29 10:33:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
现在想做一个3分频电路,知道这样设计是不合理的,存在竞争和冒险的风险,但是,我想分析下这个电路的时序问题,代码如下:
module div_3(
       input clk,
                 input rst,
                 output clk_out
    );
reg q1;
reg q2;
wire clk1;
wire clk2;
assign clk1=clk^q2;
assign clk2=q1;

always @(posedge clk1 or posedge rst)begin
    if(rst)begin
            q1<=0;
         end
         else begin
       q1<=~q1;
    end
end
always @(posedge clk2 or posedge rst)begin
    if(rst)begin
       q2<=0;
    end
    else begin
       q2<=~q2;
    end
end         
assign clk_out=q2;
endmodule

时序图

时序图

问:为什么clk2,也就是q1的状态好像不单单是在clk1上升沿采样,和clk_out和clk的异或也有关系?但是我在代码中写的就是异或后产生clk1信号,再在clk1的上升沿采样,这个时序不是很懂,求各位好心人解释下。
 楼主| 发表于 2014-9-29 10:33:55 | 显示全部楼层
自顶一下,求助。
 楼主| 发表于 2014-9-29 12:17:43 | 显示全部楼层
没人回答啊,不要沉了
发表于 2014-9-29 14:11:35 | 显示全部楼层
module div15(clkin, clkout, rstn)input clkin;input rstn;output clkout;//自己补充reg ...wire ...always @(posedge clkin or negedge rstn)   begin            if(!rstn)                clk_d2 <= 1'b0;            else                clk_d2 <= ~clk_d2;endassign clk_neg = ~clkin;assign clkout = clk_neg ^ clk_d2;endmodule
发表于 2014-9-29 14:45:15 | 显示全部楼层
回复 1# gsylogo

寄存器的赋值加 #1 延迟,然后你再看波形和你想象的有什么不同
发表于 2014-9-29 14:49:36 | 显示全部楼层
不懂,同问
发表于 2014-9-29 14:51:46 | 显示全部楼层
图中,q1的下降沿是在clk1的上升沿完成的,但q1是如何变成高电平的呢
 楼主| 发表于 2014-9-29 15:23:32 | 显示全部楼层
回复 7# sally050119


    是啊,一直想不明白,q1是怎么变高电平的
 楼主| 发表于 2014-9-29 15:24:50 | 显示全部楼层
回复 5# arthur_wang_orz


    和这个有什么关系吗?求详细解答呀
发表于 2014-9-29 15:26:06 | 显示全部楼层
回复 5# arthur_wang_orz


    这个语句是可综合的语句吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-27 23:51 , Processed in 0.033588 second(s), 10 queries , Gzip On, Redis On.

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