Altera器件设计中的时间匹配问题的研究
发布时间:2008/6/5 0:00:00 访问次数:615
美国altera公司生产的复杂可编程逻辑器件以其操作灵活、使用方便、开发迅速、投资风险低等特点成为集成电路设计的首选产品。altera的 max+plusⅱ可编程逻辑开发软件,提供了一种与工作平台、器件结构无关的设计环境,深受广大电子设计人员的喜爱。但设计人员都会遇到altera器件设计中的时间匹配问题,本文对这个问题展开了讨论,对电路中短时脉冲波形失真的所谓"毛刺"现象进行了研究,并提出了解决的办法。
2 消除毛刺
某个事件成功的条件不分先后顺序,只要满足成功的组合需求,此事件就算成功,此种逻辑关系就是组合逻辑。我们在使用altera器件进行组合逻辑的设计时,常遇到短时脉冲波形失真,即毛刺问题(见图1)。在组合电路中,两输入and门是最简单的电路,从max+plusⅱ中的 timing analyzer的delay matrix 中可得知a=11.1ns,b=8. 1ns。假定and门内部的延时时间为0.2ns,那么 a的延时+ and内部的延时(0.2ns)=11.1ns,a的延时为10.9ns; b的延时+and内部的延时(0.2ns)=8.1ns,b的延时为7.9ns。由于 a和b的延时时间不相等,所以当a从1变为0,同时b从0变为1时,输出结果c产生了毛刺。
altera器件结构有许多特点,使你在设计时具有较大的灵活性,但是,它可能会引入附加的时间延时。另外,复杂可编程逻辑器件中具有称作逻辑阵列块(lab)的小型、高性能、灵活阵列模块,还有称作可编程连线阵列(pia)的专用可编程网络,max的结构通过pia来连接lab,保证其100%的内部连接布通率。每个lab中的逻辑扩展项都提供附加的逻辑资源给lab中的任何一个宏单元。但是,所有来自宏单元和扩展项的信号经过pia时都必然引入时间延时,从而可能在组合逻辑的输出端产生毛刺。对于怎样消除毛刺,我们作了以下探讨。
2.1 软件修改输入端子的延时时间
一些软件(如xilinx公司)提供的方法是通过修改输入端子的延时时间,来解决毛刺问题的。如图1中,我们用软件把 b输入端子的延时时间改为10.9ns,这样a与 b的延时时间相等,就消除了输出端c的毛刺。它的优点是能快速解决问题,这是设计中最简单实用的方法。
2.2 修改电路
通过修改定义时钟信号的复杂逻辑,将其转换成同步时钟方式就可以避免毛刺出现。同步时钟是采用单一的引脚驱动的系统时钟,而不是异步的(逻辑驱动的)时钟,见图2。只要可能就应尽量采用同步设计,可以避免定时关系发生问题。另外,同步设计也可以改善电路的在线性能,减少调试时间和提高电路的可靠性。在同步时钟方式中 c信号是d触发器输入的一部分,而且时钟是由引脚驱动。这个电路称作寄存器使能电路, max+plusⅱttl宏功能库中提供了一种可以实现这种类型电路的d触发器dffe(见图2)。
对于三到八译码器而言,用a、b、c表示输入引脚,d0、d1、d2、d3、d4、d5、d6、d7 表示三到八译码器的输出引脚。对该设计项目进行编译后模拟仿真,这时非常容易从模拟仿真出来的波形上看到出现了毛刺。如采用同步时钟(引脚驱动)方式,就可以消除毛刺。要注意的一点是建立和保持时间(setup/hold time )是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。输入信号应提前时钟上升沿(如上升沿有效)t时间到达芯片,这个t就是建立时间set up time。如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。hold time不够,数据同样不能被打入触发器。我们选用a端的输入脉冲宽度是时钟脉冲的四倍,这样d 触发器就可以正常动作,输出结果是正确的,见图3、图4。如果我们一定要使输入脉冲等于输出脉冲的宽度,就要使输入脉冲的高电平与时钟脉冲的高电平错开,保证d触发器能工作。
2.3 重新设计电路
毛刺是信号趋于稳定前不必要的开关动作,使每个时钟沿改变了寄存器间组合逻辑的输入。对每个节点而言,不同的输入路径有不同的延时,这将多次改变
美国altera公司生产的复杂可编程逻辑器件以其操作灵活、使用方便、开发迅速、投资风险低等特点成为集成电路设计的首选产品。altera的 max+plusⅱ可编程逻辑开发软件,提供了一种与工作平台、器件结构无关的设计环境,深受广大电子设计人员的喜爱。但设计人员都会遇到altera器件设计中的时间匹配问题,本文对这个问题展开了讨论,对电路中短时脉冲波形失真的所谓"毛刺"现象进行了研究,并提出了解决的办法。
2 消除毛刺
某个事件成功的条件不分先后顺序,只要满足成功的组合需求,此事件就算成功,此种逻辑关系就是组合逻辑。我们在使用altera器件进行组合逻辑的设计时,常遇到短时脉冲波形失真,即毛刺问题(见图1)。在组合电路中,两输入and门是最简单的电路,从max+plusⅱ中的 timing analyzer的delay matrix 中可得知a=11.1ns,b=8. 1ns。假定and门内部的延时时间为0.2ns,那么 a的延时+ and内部的延时(0.2ns)=11.1ns,a的延时为10.9ns; b的延时+and内部的延时(0.2ns)=8.1ns,b的延时为7.9ns。由于 a和b的延时时间不相等,所以当a从1变为0,同时b从0变为1时,输出结果c产生了毛刺。
altera器件结构有许多特点,使你在设计时具有较大的灵活性,但是,它可能会引入附加的时间延时。另外,复杂可编程逻辑器件中具有称作逻辑阵列块(lab)的小型、高性能、灵活阵列模块,还有称作可编程连线阵列(pia)的专用可编程网络,max的结构通过pia来连接lab,保证其100%的内部连接布通率。每个lab中的逻辑扩展项都提供附加的逻辑资源给lab中的任何一个宏单元。但是,所有来自宏单元和扩展项的信号经过pia时都必然引入时间延时,从而可能在组合逻辑的输出端产生毛刺。对于怎样消除毛刺,我们作了以下探讨。
2.1 软件修改输入端子的延时时间
一些软件(如xilinx公司)提供的方法是通过修改输入端子的延时时间,来解决毛刺问题的。如图1中,我们用软件把 b输入端子的延时时间改为10.9ns,这样a与 b的延时时间相等,就消除了输出端c的毛刺。它的优点是能快速解决问题,这是设计中最简单实用的方法。
2.2 修改电路
通过修改定义时钟信号的复杂逻辑,将其转换成同步时钟方式就可以避免毛刺出现。同步时钟是采用单一的引脚驱动的系统时钟,而不是异步的(逻辑驱动的)时钟,见图2。只要可能就应尽量采用同步设计,可以避免定时关系发生问题。另外,同步设计也可以改善电路的在线性能,减少调试时间和提高电路的可靠性。在同步时钟方式中 c信号是d触发器输入的一部分,而且时钟是由引脚驱动。这个电路称作寄存器使能电路, max+plusⅱttl宏功能库中提供了一种可以实现这种类型电路的d触发器dffe(见图2)。
对于三到八译码器而言,用a、b、c表示输入引脚,d0、d1、d2、d3、d4、d5、d6、d7 表示三到八译码器的输出引脚。对该设计项目进行编译后模拟仿真,这时非常容易从模拟仿真出来的波形上看到出现了毛刺。如采用同步时钟(引脚驱动)方式,就可以消除毛刺。要注意的一点是建立和保持时间(setup/hold time )是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。输入信号应提前时钟上升沿(如上升沿有效)t时间到达芯片,这个t就是建立时间set up time。如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。hold time不够,数据同样不能被打入触发器。我们选用a端的输入脉冲宽度是时钟脉冲的四倍,这样d 触发器就可以正常动作,输出结果是正确的,见图3、图4。如果我们一定要使输入脉冲等于输出脉冲的宽度,就要使输入脉冲的高电平与时钟脉冲的高电平错开,保证d触发器能工作。
2.3 重新设计电路
毛刺是信号趋于稳定前不必要的开关动作,使每个时钟沿改变了寄存器间组合逻辑的输入。对每个节点而言,不同的输入路径有不同的延时,这将多次改变