登录站点

用户名

密码

CPLD/FPGA设计问答整理归纳(二)

已有 1632 次阅读  2009-09-30 08:11   标签CPLD  FPGA  问答  归纳  设计 
CPLD/FPGA设计问答整理归纳(二)

 

 

1.  一般情况下用Synplify Pro综合后生成的edf文件经MP2编译后与用MP2综合及编译相比较, 占用资源较少, 但在使用层次化设计中, 使用Synplify Pro综合顶层文件后得到的edf文件经MP2编译后与用MP2综合及编译该顶层文件相比较却大大的占用资源, 请问, 在使用Synplify Pro综合层次化设计中如何才能节省资源?

答:在使用软件做优化时存在这样一个平衡关系: 资源利用率与速度的平衡.  资源利用率提高了,  也就是节省了资源,  但整个设计的性能可能会降低了. 

同样尽力去优化系统性能,  提高速度, 那资源的利用也可能会增加. 当在使用层次化设计中,  如何来优化整体设计,  最关键的就是层次与模块的划分.

在划分层次和模块是有几点建议:

1)以功能来划分;功能模块与层次的设计可以帮助你清楚的定义边界, 在模块框图中, Data pathstri-state signalsstate machinesregister blockslarge macrofunctionsmemory elementscontrol blocks和一些重复使用的模块都具有其本身的自然边界.

2)划分模块时要尽量减少模块间的IO连接, 过多的IO接口会使系统变得复杂,  软件需要交叉布线, 降低性能和提高资源利用.

3)在可能的情况下,  尽可能多的给模块的输出加Resister.  尽可能地优化模块的划分与接口,  是提高层次化设计性能的关键.  更详细的方法与建议, 可以参照我们的应用文档AN101.

 

2.  FPGA中是以何种形式实现VHDL的变量类型的?

答:There is no definite answer to this.  It depends on how you write your codes.  A variable in vhdl may be synthesized into a physical net,  or it may not exist at all in the resulting circuit. 文:没有明确的答案. 它取决于所编写的代码. Vhdl中的变量可能同步到物理网络中, 或者根本不可能存在于结果电路中.

 

3.    想把EPM712TMS320F240做在一块实验板上, 但是不知道怎么设计仿真口对EPM7128编程?还是必须买厂家的EPM7128开发板?

答:可以参考AN116的下载数据手册,  按照其中的下载原理图来连接DSPPLD的下载口. 下载电路其实非常的简单,  只需按照7128的下载波形,  DSP中将PLD 的下载文件依此输入即可.  当然也可以从当地代理商那里获得支持,  参考一些典型下载电路.  

 

4.  想在内部上拉输入信号, 所使用的设备是FLEX6016. 怎么做?

答:可以在MAXPLUSII中选定该信号,  然后选择assign-> logic option->Individual logic options -> Enable pull-up resistor.  然后重新编译一下就可以了.

 

5.  当一个输入信号不满足触发器的Setup/Hold时间时, 触发器的输出信号是不是一稳定状态(或为0, 或为1, 当下一次的输入信号满足Setup/Hold时间时, 触发器能正确地输出)?由于此时触发器处于亚稳态, 以前看过一些资料, 某些器件的输出可能是振荡状态, 即此时、将来的输出信号不可预测, 与时钟信号、输入信号无关. 我想问的是Altera器件对此情况是如何处理?因为某些情况下, 当输入信号超过1Clk时间, 只是在第一个Clk周期内, 不满足Setup/Hold, 但是其他的Clk周期内, 满足Setup/Hold. 

答:关于这个问题,  建议参考一下ALTERA的文档AN42.  该文档详细地讨论了ALTERA器件的亚稳态性.

 

6.  目前采用SRAM技术的LUT-basedFPGA仍然占绝对主流地位, 但是这种FPGA有其天生的缺陷, 请问下一代FPGA的构架发展趋势怎样?Altera在这方面有没有什么新的尝试?

答:下一代FPGA主要朝着SOPC的方向发展:

Altera的下一代产品Stratix, 基本单元LE仍然基于LUT结构, 但有些大的改变,

     去掉了传统的级联链(Cascade Chain);

     进位链(Carry Chain)由以前的单一1条变为LAB Carry-inCarry-in1Carry-in0三条;

     LE的扇出也由2个变为了4个;

     触发器的控制信号也更多.

其它方面:

     RAM:一改以前单一2K BITs 4K BITs Memory为小RAM512BITs; RAM4KBITs;大RAM512 KBITs

     第一次在FPGA中嵌入DSP

     时钟链路也由全局时钟变为全局时钟和区域全局时钟;

     . . . . . .

所有的这些变化都是通过大量的用户反馈信息作出的慎重改进, 使的Stratix器件更加适合用户的设计需求

 

7.  "Always use fully synchronous design.  You never need to reply on gate delay if your design is fully synchronous. " 如果设计是完全同步的, 意思是就可以不用依靠门延时. 但在设计时, 在对和数据一同进来的控制信号进行处理后所产生的输出控制信号会滞后数据数个时钟周期, 这时就不得不对数据进行门延时, 已达到同步. 现在看来, 这是不合适的. 但是, 要用什么办法来处理这个问题而不应用门延时呢?

答:In a "fully synchronous" design,  you only have 3 kinds of paths(在完全同步设计中, 只有三种途径:)

                  From I/O to synchronous element. (从I/O到同步元素)

                  From synchronous element to synchronous element. (从同步元素到同步元素).

                  From synchronous element to I/O. (从同步元素到I/O

A fully synchronous design will work as long as the delays of all these paths do not exceed the clock period.  So you never need to introduce any delay.  If you derive any control signal from the input signals,  that control signal only goes to the 'D' or 'EN' pin of a FF,  but not the 'CLK' pin.  So there is no need to introduce any delay to your data.  Simply speaking,  you only need to design the "data" path but not the "clock" path in a fully synchrous design.

On the other hand,  you can remove clock delay with the DLL in Xilinx SpartanII/Virtex devices or the DCM in VirtexII devices.  (完全同步设计将工作到所有这些路径的延迟不超过时钟期间. 因此从不需要传入任何延迟. 如果从输入信号中得到任何控制信号, 则该控制信号只能传递至FFDEN引脚, 而不是CLK引脚. 因此, 不需要将任何延迟传入数据. 简单讲, 在完全同步设计中, 只需设计“数据”路径, 而不是“时钟”路径.

 

8.  自顶向下的设计过程是什么样的一种过程?我的理解是在设计开始时, 利用vhdlverilog中的延迟描述语言在功能和波形上进行仿真描述, 而后进行rtl设计. . . . 是否是这样的一个过程?

答:By top down design we usually mean you partition the top level design into a number of modules first,  without going into details of each of those modules.  Then you start to design each module,  which may involves defining more underlying submodules.  The process stops when you have designed all the underlying submodules.  The basic idea is to build a hierarchy which starts with less details on the top and more details as you go down the hierarchy. (参考译文:我们所谓的自顶向下设计通常是指:先将顶级设计划分为多个模块, 而不涉及这些模块的细节. 然后开始设计每个模块, 可能包括定义更多底层子模块. 当设计完成所有底层子模块后, 这个过程即完成. 基本思路是建立一个层次结构, 从顶部粗略划分开始, 越向下层越详细.

 

ISE做过很多的设计, 但是ISE中的help对设计说的比较详细, 但是对Navigator的功能的说明不是很好. ISE中有一个Library_view.  当你把work库中的设计moveVHDL

 

9.  AN95TCK通过1K电阻接地, 而且TDO直接与目标芯片连接了. 但是Altera5V下载电缆不是这样连接的, TCKTDOTMSTDI都是通过上拉电阻接VCC. 通过ByteBlaster下载电缆应该怎么连接?

答:正确连接TMSTDI通过上拉电阻接VCCTCK通过电阻接地;TDO直接与目标芯片连接.

 

10.              基于maxplus2的仿真是不是就是所谓的后仿真?答:基于Max+PlusII的仿真有两种:(1)功能仿真;(2)时序仿真(后仿真).

 

11.              批量生产时, 是否要一个一个对ACEX1KPCB的配置器件如EPC1进行下载?

答:在批量生产时, 可以利用ALTERA或第三方提供的下载器进行下载, 不需要对每一块板子单独地下载, 只需将下载好的EPC直接插入板上即可.

 

12.              EPM7128与数码管、键盘接口用不用驱动?

答:EPM7128与数码管、键盘接口可以不用驱动, 但要注意连接的个数. 具体的电流参数可以参照7000的数据手册.  

 

13.              设计中用了2EAB来实现FIFO, 如果不用EAB来实现, 要多少个LE才能完成?

答:假如说将2EAB实现的FIFOLE来实现可能要占用很多的LE个数来完成, 因为一个EAB中有4Kbit, 假如说全部用LE来完成那将是一个很大的浪费, 也不推荐这样做.  但是该FIFO要占用多少个LE的资源, 要看实际的FIFO设计而定, FIFO 的大小, 算法的优劣都决定了LE资源的占用.

 

14.              在使用Altera的器件进行设计时, AHDL是否会优于VHDL, MAX+PLUS IIVHDL的支持是否欠佳, 怎样才能在设计时更好的使用VHDL?

答:AHDL ALTERAVHDL基础上自己定义的一种设计语言,  特别适合做ALTERA的器件编成, 但是不通用于别的厂商. 假如用的是VHDL, 推荐使用ALTERA软件包中自带的第三方综合工具对VHDL设计进行编译. 

 

15.              输入管脚带有上拉电阻, 有时还需要外加上拉电阻, 他们的作用是什么?

答:The pull-up resistors built into the FPGA I/O pin are relatively weak - usually in the order of several tens of Kohm to a hundred Kohm.  It will be too slow if you rely on these weak pull-up to charge up an open-drain signal to logic '1'.  You can speed it up by adding a stronger external pull up resistor. (参考译文:置入FPGA I/O引脚的上拉电阻相对较弱, 通常为几十千欧至几百千欧. 如果依靠这些弱电阻来将开漏信号填充至逻辑“1, 则速度会很慢. 通过添加外部上拉电阻可以提高速度.

上一篇: AD/DA的分类与主要技术指标 下一篇: PROTELl99SE 元件名系表--分立元件库中英文对照

分享 举报