原创 【博客大赛】复位信号其实不简单

2014-8-15 05:15 1189 6 8 分类: MCU/ 嵌入式 文集: FPGA设计经验

案列一:

clk和rst_n信号连接到FPGA,FPGA将复位信号直接给MCU,时钟信号经二分频提供给MCU,非常简单吧,分频程序如下:

assign rst_mcu_n=rst_n;

always @ (posedge clk or negedge rst_n)

       if(rst_n==1'b0)

              clk_mcu<=1'b0;

      else

              clk_mcu<=!clk_mcu;

这样的程序在MCU在执行过程中就会出问题,原因是大部分MCU要求时钟在复位信号无效前必须维持多个周期,而显然上述程序做不到这一点,复位信号变无效后,才开始输出时钟信号的。

案例2:

外部输入的硬复位做全局复位信号?大家似乎对这点从未怀疑过,是啊,硬复位内部所有的触发器还有各种IP核等,似乎是无可争议的事情?但是你想过么:

电源加电后,FPGA上电配置时间有的超过几百ms(不同存储容量的FLASH,加载时间不一样),我们常用的看门狗信号max706,复位有效时间是200ms,所以如果上电加载配置时间大于200ms的话..........呵呵,你懂得,内部触发器不能保证复位到默认值。

所以我的设计方案是:

assign rst_cnt_n=(count==16'hDCBA)?1:0;

assign rst_syn=rst_n & rst_cnt_n;//rst_syn用作全局复位信号

always @ (posedge clk or negedge rst_n)

       if(rst_n==1'b0)

              count<=16'b0;

      else if(count==16'hDCBA)

              count<=16'hDCBA;

      else

              count<=count+1;

希望这两个小案例对大家有所帮助!

文章评论2条评论)

登录后参与讨论

用户377235 2014-8-16 14:45

你说的这些挺有道理的,我以前真没注意到,谢谢!

用户377235 2014-8-16 14:45

你说的这些挺有道理的,我以前真没注意到,谢谢!
相关推荐阅读
快乐的践行者 2018-02-23 17:22
回来了
一晃好几年没来这儿了。心麻木了,干什么都没动力。...
快乐的践行者 2015-05-14 10:56
【博客大赛】《FPGA项目开发实战讲解》目录
《FPGA项目开发实战讲解》目录 第1章 FPGA介绍 1.1 FPGA的优势  1.2 FPGA典型结构图  1.3 LUT原理  1.4 FPGA上电配置过程时序图  1....
快乐的践行者 2015-05-07 06:17
【博客大赛】ACTEL的FPGA使用心得
和XILINX和ALTERA相比,ACTEL的使用人群就少多了。 ACTEL的缺点是运行速度不如xilinx的快,开发环境不如ISE灵活方便,文档也没有xilinx的丰富。 优点是其大部分...
我要评论
2
6
关闭 站长推荐上一条 /2 下一条