集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2542|回复: 7

关于Verilog的问题

[复制链接]
zhsj 发表于 2016-1-31 10:23:47 | 显示全部楼层 |阅读模式
我想写一个模块,有三个输入,分别是Din,A,B,一个输出为Dout。当检测到A的上升沿时,不论B处于什么状态,输出Dout=Din。当检测到B的下降沿时,不论A处于什么状态,输出Dout=0。A的上升沿和B的下降沿不会同时到达。请问这个模块该怎么写???
陈飞龙 发表于 2016-2-13 14:36:55 | 显示全部楼层
always@ (posedge A or negedge B)
     if (!B)
        Dout<=0;
     else
        Dout<=Din;
 楼主| zhsj 发表于 2016-2-17 18:56:26 | 显示全部楼层
陈飞龙 发表于 2016-2-13 14:36
always@ (posedge A or negedge B)
     if (!B)
        Dout

感谢回复!
但这样写是有问题的,如果在A上升沿到达时B的值为0,那输出岂不是成了0,而不是要求中的Din。
陈飞龙 发表于 2016-2-17 21:36:21 | 显示全部楼层
zhsj 发表于 2016-2-17 18:56
感谢回复!
但这样写是有问题的,如果在A上升沿到达时B的值为0,那输出岂不是成了0,而不是要求中的Din ...

你不是说A的上升沿和B的下降沿不会同时到达吗?
 楼主| zhsj 发表于 2016-2-18 21:53:36 | 显示全部楼层
陈飞龙 发表于 2016-2-17 21:36
你不是说A的上升沿和B的下降沿不会同时到达吗?

A的上升沿和下降沿是不会同时到达,但还是有可能在A上升沿到达的时候B已经变成0了呀!如图:

本帖子中包含更多资源

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

x
nail_lin 发表于 2016-4-21 09:41:10 | 显示全部楼层
检测A的上升沿,B的下降沿
always @(posedge sclk)        begin
                A_1 <= A;
                A_2 <= A_1;
end
assign A_P = A_1 && ~A_2;
always @(posedge sclk)        begin
                B_1 <= B;
                B_2 <= B_1;
end
assign B_N = ~B_1 && B_2;
always @(posedge sclk)        begin
        if(A_P)
                Dout <= Din;
        if(B_N)
                Dout <= 'b0;
end
404710433 发表于 2016-4-21 09:49:16 | 显示全部楼层
进来看看学习一下

重生误入豪门   wap.xs7788.co/kanshu41/110771/
陈飞龙 发表于 2016-4-21 10:24:03 | 显示全部楼层
6666666666666
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-6 12:58 , Processed in 0.066645 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表