微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 可编程逻辑器件设计技巧(下)

可编程逻辑器件设计技巧(下)

时间:10-02 整理:3721RD 点击:
可编程逻辑器件设计技巧(下)
--转自电子工程专辑
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供电环境, 是否存在毛刺,电源纹波的大小.

接上面的:
47.想把EPM712和TMS320F240做在一块实验板上, 但是不知道怎么设计仿真口对EPM7128编程?还是必须买厂家的EPM7128开发板?
答:可以参考AN116的下载数据手册,按照其中的下载原理图来连接DSP与PLD的下载口. 下载电路其实非常的简单,只需按照7128的下载波形,从DSP中将PLD 的下载文件依此输入即可.当然也可以从当地代理商那里获得支持,参考一些典型下载电路.
48.想自己设计一块TMS320F240试验电路板, 包括A/D、D/A、键盘显示接口, 其中译码、键盘显示部分想用EPM7128来做, 不知道具体怎么与TMS320F240接口?
答:所谓PLD为可编程器件, 其IO口的连接非常地灵活, IO 口的功能可以按照自己的定义来设定. 只需将希望的TMS320F240连接口连接到PLD的任意IO口上, 然后在PLD中编写相应的控制逻辑,即可进行数据传输与控制.
49.变频器盘中使用一芯片是ALTERA EP330PC-12烧坏, 请问如何处理?
答:这是一款旧型号的芯片.可以利用ALTERA或第三方提供的编成器将下载文件重新下载到一个好的器件中去, 或者采用MAXPLUSII软件通过BYTEBLAST(MV)连接到板子上将编成文件读出再下载到新的器件中去.
50.SRFF = SR flipflop SRFF和SR latch有何区别?
答:FUNCTION SRFF (S,R,CLK,CLRN,PRN) RETURNS (Q);
//VHDL Component Declaration:
COMPONENT SRFF
PORT (s : IN STD_LOGIC;
r : IN STD_LOGIC;
clk : IN STD_LOGIC;
clrn: IN STD_LOGIC;
prn : IN STD_LOGIC;
q : OUT STD_LOGIC);
END COMPONENT;
FUNCTION LATCH (D,ENA)
RETURNS (Q);
//VHDL Component Declaration:
COMPONENT LATCH
PORT (d : IN STD_LOGIC;
ena: IN STD_LOGIC;
q : OUT STD_LOGIC);
END COMPONENT;
不同点在于SRFF是一个触发器,而LATCH只是一个锁存器,更详细的真值表可以从软件的HELP文档中可以查到.
51.想在内部上拉输入信号, 所使用的设备是FLEX6016. 怎么做?
答:可以在MAXPLUSII中选定该信号,然后选择assign-> logic option->Individual logic options -> Enable pull-up resistor.然后重新编译一下就可以了.
52.有关输入信号的上拉问题(前题), 按照专家的回答做过, 但是失败了, 不知道是什么原因导致了此法不可行?还有没有别的办法?
答:Altera的FLEX6000系列在I/O管脚上是没有上下拉电阻的, 所以加了约束也没有作用.

53.使用AHDL语言编写的程序. 在Quartus II 1. 0下编译, 使用的是20K400EBC652-3的片子. 将编译产生的pof文件下载到EPROM里, 但是在程序没有多大修改的情况下(仅仅改变一些测试管脚), 程序运行结果不一样. 具体表现在DSP芯片启动FPGA里的一根控制线不稳.
答:逻辑功能仿真结果如何?在修改前后有没有改变?假如说功能仿真是对的, 请确认设计Timing是否满足要求, 尤其是IO的Timing 要求是否达到.在可能的情况下进行后仿真, 其仿真结果能够确保你的逻辑在PCB板上正常地工作.假如仿真结果与Timing要求都没有问题, 其逻辑一定能在板子上正常地工作.
54.当一个输入信号不满足触发器的Setup/Hold时间时, 触发器的输出信号是不是一稳定状态(或为0, 或为1, 当下一次的输入信号满足Setup/Hold时间时, 触发器能正确地输出)?由于此时触发器处于亚稳态, 以前看过一些资料, 某些器件的输出可能是振荡状态, 即此时、将来的输出信号不可预测, 与时钟信号、输入信号无关. 我想问的是Altera器件对此情况是如何处理?因为某些情况下, 当输入信号超过1个Clk时间, 只是在第一个Clk周期内, 不满足Setup/Hold, 但是其他的Clk周期内, 满足Setup/Hold.
答:关于这个问题,建议参考一下ALTERA的文档AN42.该文档详细地讨论了ALTERA器件的亚稳态性. 网上的地址是http://www. altera. com/literature/an/an042. pdf.
55.在中国市场上, 可以容易买到使用Altera公司的软件MAX+PlussII进行VHDL和FPGA设计的教程书籍, 但是却鲜有使用Xilinx foundation软件平台的书籍, Xilinx是否考虑增强这方面内容?
答:Thank you for your input.In fact there are a number of books available in the market on Xilinx FPGA and development tools.A good example is the title "XILINX 数字系统集成技术" by Professor 朱明程,published by Southeast University Press.We will work closely with local publishers to bring out more titles on Xilinx products.(市场上还是有几本Xilinx FPGA和开发工具的书. 比较好的有朱明程教授编的《XILINX 数字系统集成技术》, 东南大学出版社出版. Xilinx公司也将会与本地出版商密切合作, 推出更多针对Xilinx产品的书籍. )

it is too old.

真无私
LZ太好了

真无私
LZ太好了

haode,bucuo ,ding

不错,到电子工程看下

很有用处阿

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top