|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
可编程逻辑器件设计技巧(下)
--转自电子工程专辑
38. I am now going to design a gray coded 16 bits counter , any efficient way to implement it in VHDL description? (要设计一个灰色编码16位的计数器, 怎么以VHDL描述来实现它?)
答:You can just use megawizard(lpm_counter) in the software to generate the counter for you, select the output language with VHDL. That should be the efficient way to implement a counter, and you don't to make additional optimize.
Because the lpm function code is the best way to fit the structure of device, which is designed by altera factory specialist who is very familiar with our device structure. (参考译文:可以使用软件里的megawizard(lpm_counter)来生成计数器, 选择带有VHDL的输出语言. 这应该是实现计数器的有效方法, 而且不用进行额外的优化.
因为lpm功能代码最适合此设计结构, 这种结构是非常熟悉我们的设计结构的altera专家设计的. )
39. 一般情况下用Synplify Pro综合后生成的edf文件经MP2编译后与用MP2综合及编译相比较, 占用资源较少, 但在使用层次化设计中, 使用Synplify Pro综合顶层文件后得到的edf文件经MP2编译后与用MP2综合及编译该顶层文件相比较却大大的占用资源, 请问, 在使用Synplify Pro综合层次化设计中如何才能节省资源?
答:在使用软件做优化时存在这样一个平衡关系: 资源利用率与速度的平衡. 资源利用率提高了, 也就是节省了资源, 但整个设计的性能可能会降低了.
同样尽力去优化系统性能, 提高速度, 那资源的利用也可能会增加. 当在使用层次化设计中, 如何来优化整体设计, 最关键的就是层次与模块的划分.
在划分层次和模块是有几点建议:
1)以功能来划分;功能模块与层次的设计可以帮助你清楚的定义边界, 在模块框图中, Data paths、tri-state signals、state machines、register blocks、large macrofunctions、memory elements、control blocks和一些重复使用的模块都具有其本身的自然边界.
2)划分模块时要尽量减少模块间的IO连接, 过多的IO接口会使系统变得复杂, 软件需要交叉布线, 降低性能和提高资源利用.
3)在可能的情况下, 尽可能多的给模块的输出加Resister. 尽可能地优化模块的划分与接口, 是提高层次化设计性能的关键. 更详细的方法与建议, 可以参照我们的应用文档AN101.
40. 以前的问题提到, 用EPM7064LC68进行编译, 会出现编译错误. 如果编译时, 让系统自动选择器件, 则选中的器件是EPM7064SLC84, 编译通过. 我查遍手头的资料, 并没有发现后者有三个输出使能, 这是怎么回事?望解答.
答:事实上在MAX7000S上有6个输出使能控制信号, 你可以在MAX7000的数据手册(M7000. PDF)第二页看到有这样的说明.
Enhanced features available in MAX 7000E and MAX 7000S devices – Six pin- or logic-driven output enable signals
41. 在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中的变量可能同步到物理网络中, 或者根本不可能存在于结果电路中. )
42. 在布线后生成的时序报告文件中, 可以看到延时的一些报告, 对于某条时序报告, 如何定位其对应的语句呢?特别是当完全使用语言方式输入时, 生成的网表中大量的为N**形式, 无法看懂其含义.
答:Most synthesizers do preserve signal names to a certain extend, usually a string is concatenated to the end of the original name. So you can still correlate the names in many cases. For those strange net names like N***, they are signals generated by the synthesizer and may not have a counterpart in the original source code. (参考译文:大多数合成器是会以某种扩展名来保存信号名称, 这些扩展名通常是连接到最初的名称末尾的字符串. 使这些名称在很多情况下仍然相关. 至于那些像N***一样奇怪的网表名称, 是由合成器生成的信号, 而且可能不会在最初的源代码中有副本. )
43. 布线后时序仿真与实际电路板上测试一般都不一样, 特别对于高速信号, 几个ns的差别是很大的, 到底应该以哪一个为标准进行设计呢?
答:The timing information you get from the post-layout simulation is based on worst case parameter. So you usually have better results on silicon than in simulation. For robust designs, always consider the worst case. (参考译文:从时序仿真中获得的时序信息是基于最坏情况参数的. 因此, 通常在硅片上实际操作的结果要比仿真中的好. 对于可靠的设计而言, 始终都要考虑最坏的情况. )
44. ISE4. 2和ISE4. 1相比有何改进?
答:Here's a brief list of new features in ISE4. 2i (以下是ISE4. 2i新特性的要点)
- Device support for VirtexII Pro and CoolRunnerII (设备支持VirtexII Pro和CoolRunnerII)
- Provides 2 new source types, BMM files and ELF files, for embedded VirtexII Pro PowerPC and Microblaze processor support. BMM file is the Block RAM Memory Map file that describes the organization of Block RAM memory. ELF file is the Executable and Linkable Format file contains the executable CPU code image to be stored in Block RAM as specified in the BMM file. (提供2个新的源类型:BMM文件和ELF文件, 以支持嵌入式VirtexII Pro PowerPC和Microblaze处理器. BMM文件是“块RAM内存图”文件, 它描述了块RAM内存的结构. ELF文件是“可执行和可链接格式”文件, 它包含存储在BMM文件中指定的块RAM的可执行CPU代码图. )
- Improved PAD file for easier to import into a spreadsheet program for viewing, sorting and printing. (改进PAD文件, 以便导入到电子表格程序中, 供查看、存储和打印)
- iMPACT now incorporates the functionality of the PROM File Formatter and Xilinx System ACE software. (iMPACT与PROM文件格式程序和Xilinx系统ACE软件的功能相结合)
- XST enhancement for better language support and preservation of internal signal names. (XST增强了语言支持, 并能保存内部信号名称. )
For more information regarding Xilinx ISE4. 2i, please visit our website www. xilinx. com (更多有关Xilinx ISE4. 2i的信息, 请访问网站www. xilinx. com).
45. 经常看到gate这个词. 能够具体解释一下它的含义, 例举其用法以及如何避免问题?
答:Here're a couple of examples :(举例说明)
- Never use gated clock. By gated clock we mean the clock signal comes out from combinational logic. It is well known that any signal coming out of combinational logic is prone to glitch. The result is fatal if there is a glitch on your clock signal since it will cause false triggering of FFs. A common technique to avoid gated clock is to utilize the clock enable pin on the FF. (从不使用gated clock. 这个词表示时钟信号出自组合逻辑. 众所周知, 任何出自组合逻辑的信号都容易发生故障. 由于时钟信号上的故障将导致错误触发FF, 其结果是致命的. 避免gated clock常用的技巧是利用FF上的时钟使能引脚. )
- Never design a circuit that relies on gate delay to function. It was a common practise in the past to introduce a delay in the design by inserting a series of logic gates. This is not a recommended style in modern high speed digital design since the delay changes as new devices coming out from more advance process technologies. Also, the amount of delay changes as temperature and voltage as well. So it is not a good design practice to have circuits which relies in gate delay to function. (绝不设计依赖gate delay工作的电路. 通过插入一系列逻辑门在设计中引入延迟, 这是以前常见的作法. 而在现代高速数字设计中, 建议不要使用这种作法, 因为延迟会随采用更先进的工艺技术所制造的新器件而改变. 而且, 延迟的总量也会随温度和电压而改变. 因此依赖gate delay而工作的电路不是很好的设计. )
46. 用FLEX6016设计了一个频率测试卡, 用的是ISA总线和计算机相连, 不把卡插在ISA槽上时, 由外部提供电源时, 下载就能成功, 一但插上去, 下载就出现“SRAM load unsucessful”, 这是怎么回事呢?
答:导致“SRAM load unsucessful”可能有各方面的原因. 基于板子由外部供电是可以下载成功, 说明下载电路是正确的; 而插入ISA槽中则出现问题, 可能是ISA槽供电有问题, 可以检查一下芯片的电源信号, ISA与外部供电是否采用一致的电路, 检查ISA供电环境, 是否存在毛刺, 电源纹波的大小. |
|