[求教]大家在用VHDL编程时,同步复位与异步复位,用哪个好

[复制链接]
6086|13
 楼主| kukucat 发表于 2007-8-16 18:47 | 显示全部楼层 |阅读模式
    或者说,两者各用在哪些时候会各得其所,或者说可以相互通用?
不吝赐教!
computer00 发表于 2007-8-16 21:42 | 显示全部楼层

最好使用异步复位。这样在时钟电路还没工作时,避免出现

 楼主| kukucat 发表于 2007-8-18 10:03 | 显示全部楼层

恩,有道理,谢谢!

    学VHDL也没多久,最近才对同步和异步复位有些了解,在练习时确实还是异步复位用到的地方相对多点噢!
armecos 发表于 2007-8-18 10:38 | 显示全部楼层

一定要用同步复位

    在CPLD/FPGA设计时,所有信号最好都用时钟沿卡一下,这样,信号波形非常完美而且避免错误。
    因为组合逻辑走线长短不同,最后的合成信号可能有毛刺,导致混乱、冲突。
    复位时间一般都比较长,不存在时钟未工作的情况,而且使用同步复位可以防止复位信号线上的干扰导致的误操作。
    
    要求所有信号都同步一下,这样仿真出来的波形很漂亮,否则,总会存在一些黑乎乎的毛刺,很难保证准确。
huoxingshu 发表于 2007-8-18 11:07 | 显示全部楼层

感觉还是同步好

虽然异步逻辑上比较好用,但是真是时序毛刺太多很容易产生错误的,并且速度又那么快根本没办法知道错了,这种错误,很难发现,还是同步的好,好检察时序波形比较好,就是编程时需要多想一点
 楼主| kukucat 发表于 2007-8-18 18:27 | 显示全部楼层

感谢`~~

    今天又回看了下程序,发现异步复位是可以全改成同步复位的,那是不是两者可以通用的啊? 然后呢,再根据LS的朋友们的说法,感觉是两种复位各有各自的优缺点噢~~
qjy_dali 发表于 2007-8-18 23:50 | 显示全部楼层

这东东不能说是同步好还是异步好,各有各的用处

比如说,往往也要看要实现的功能啊。
 楼主| kukucat 发表于 2007-8-19 14:32 | 显示全部楼层

能不能举些例子,简单介绍下两种的使用时刻

 楼主| kukucat 发表于 2007-8-19 15:55 | 显示全部楼层

[请教]今天编写VHDL时,又突然发现了个问题!

新问题--再开一贴!
computer00 发表于 2007-8-19 15:59 | 显示全部楼层

你没看到那个if语句吗?

 楼主| kukucat 发表于 2007-8-19 16:05 | 显示全部楼层

恩~~

看到了,觉得不放心,呵呵~~~下次去看下仿真的波形~谢谢指教
古道热肠 发表于 2007-8-19 17:07 | 显示全部楼层

什么同步异步复位,没整明白

    数字电路只有时序逻辑和组合逻辑电路两大类。过去做CPLD逻辑时都用单片机的复位信号作为输入,由组合逻辑控制输出的信号,保证整机的复位一致性。时序逻辑就主要用来分频和锁存。
armecos 发表于 2007-8-19 18:24 | 显示全部楼层

CPLD/FPGA必须同步设计

    没有什么可商量的。不许用异步。
    同步的意思可以简单认为用时钟沿卡一下。
crizy0703 发表于 2012-3-2 10:45 | 显示全部楼层
建议采用异步复位,同步释放。代码如下:
process(clkin,async_rst)
begin
   if async_rst='0' then
      Sync_rst1 <= '0';
   elsif clkin'event and clkin='1' then
      Sync_rst1 <= '1';
   end if;   
end process;
process(clkin,async_rst)
begin
   if async_rst='0' then
      Sync_rst2 <= '0';
   elsif clkin'event and clkin='1' then
      Sync_rst2 <= Sync_rst1;
   end if;   
end process;
sync_rst <= Sync_rst2;

本质就是把异步复位信号同步化。

评分

参与人数 1威望 +1 收起 理由
aceice + 1

查看全部评分

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

本版积分规则

38

主题

205

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部