7069|10

23

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

verilog中异步复位模块中时钟信号的判断 [复制链接]

verilog编程中,异步复位程序中,复位信号和时钟信号都是以沿作为敏感信号.

always @(posedge clk,posedge rst_p)

begin

     if rst_p='1' then

        count <= 4'd0;

     else

        count <= count+'1';

end

在这个程序中,综合工具是如何判断哪一个是复位信号,哪一个是时钟信号的?是通过判断在哪个信号下给定固定值吗?

如果程序改成:

always @(posedge clk,posedge rst_p)

begin

   if rst_p='1' then

       count <= count+'1';

   else

       count <= 4'd0;

end

这样哪个是时钟信号呢?生成的电路又会是怎样的呢?

此帖出自FPGA/CPLD论坛

最新回复

其实,从上面也可以得到一点启示。在复位过程中,不要执行运算操作,最好执行赋值操作,否则浪费大量的资源!  详情 回复 发表于 2011-9-23 08:41
点赞 关注
 

回复
举报

6892

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

你这个问题提得很好!

我是这样理解你这个问题。

正常情况,复位信号边沿只来一次,时钟边沿周期来的。所以第一种写法是标准写法。编译器默认根据前面的标准认为,复位信号RST_P,Clk是时钟信号。

如果第二种情况,任然是复位信号RST_P,时钟信号CLK。

   这与D触发器的电路结构相关,D触发器复位或置位信号优先级最高,时钟触发是数据从输入到输出。

 

前面两种写法都是符合D触发器这个标准,所以编译器默认RST_P 复位信号,CLK时钟信号。编译器不会因为输出决定电路结构。

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 

回复

732

帖子

0

TA的资源

纯净的硅(高级)

板凳
 
第二种写法 是在rst_p的上升沿 计数器加1,所以rst_p会综合成时钟信号 。
此帖出自FPGA/CPLD论坛
个人签名学习的乐趣在于分享。
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

4
 

TX_XY兄,你用QUARTUS验证过吗?

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

5
 
我不同意TX_XY的看法!
此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

732

帖子

0

TA的资源

纯净的硅(高级)

6
 
原帖由 eeleader 于 2011-9-22 15:44 发表 TX_XY兄,你用QUARTUS验证过吗?


家里面电脑没有任何综合工具 也没验证 。
此帖出自FPGA/CPLD论坛
个人签名学习的乐趣在于分享。
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

7
 

验证结构如下:

第一种写法:

编写的VERILOG程序

module  test2(clk,rst_p,count);
input clk ;
input rst_p;
output count;
reg[3:0] count;

always @(posedge clk or posedge rst_p)
begin
     if (rst_p==1)
        count<=4'd0;
     else
        count <=count+1;
end
endmodule

通过RTL VIEWER查看结果如图:

修改上面的第一种写法变为第二种写法:
module  test2(clk,rst_p,count);
input clk ;
input rst_p;
output count;
reg[3:0] count;

always @(posedge clk or posedge rst_p)
begin
     if (rst_p==1)
         count <=count+1;
     else
         count<=4'd0;
        
end
endmodule

 

第二种写法综合后结果:

 

从上面的图中可以看到,结果!谁对谁错一目了然了。

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

8
 
eeleader 的说法有点意思,我自己综合了一下,工具还会把clk当时钟,然后用一个比较复杂的组合逻辑电路,通过置位的方式来实现count <= count+1'b1
此帖出自FPGA/CPLD论坛
 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

9
 
版主的解释很到位啊...小弟谢过了...
此帖出自FPGA/CPLD论坛
 
 
 

回复

732

帖子

0

TA的资源

纯净的硅(高级)

10
 
恩 eeworld 说的对 呵呵
没有仔细去推敲 。。。
此帖出自FPGA/CPLD论坛
个人签名学习的乐趣在于分享。
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

11
 

其实,从上面也可以得到一点启示。在复位过程中,不要执行运算操作,最好执行赋值操作,否则浪费大量的资源!

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表