{$cluname}

科伟奇论坛 » CPLD/FPGA综合论坛 » 可编程逻辑器件射击技巧


‹‹上一主题 | 下一主题›› 查看 11577
发表一个新帖子 发表回复

标题 可编程逻辑器件射击技巧 在百度搜索本主题 [ 搜 ] [ 打印 ] [ 推荐 ] [收藏帖子] [ 收藏到新浪VIVI] [ 订阅 ]

美好人生 (附小一年级)
楼主   [点击复制本网址] [ 字体: ] [ 编辑 ] [ 报告 ] [评分]
Rank:1
Rank:1
UID 113
帖子 11
积分 29 点
金币 52 枚
魅力 21 度
注册 2009年12月14日
可编程逻辑器件射击技巧
1. 什么是.scf
答:SCF文件是MAXPLUSII的仿真文件可以在MP2中新建.
 
1 Altera_Cpld作了一个186(主CPU)控制sdram的控制接口, 发现问题:要使得sdram读写正确, 必须把186(CPU)clk送给sdram, 而不能把clkcpld的延时送给sdram. 两者相差仅仅4ns. 而时序通过逻辑分析仪测试没有问题. 此程序在xilinx器件上没有问题. 这是怎么回事?
答:建议将所有控制和时钟信号都从PLD输出, 因为SDRAM对时钟偏移(clock skew)很敏感, Altera的器件PLL允许对时钟频率和相位都进行完全控制. 因此, 对于所有使用SDRAM的设计, Altera的器件PLL必须生成SDRAM时钟信号.
要利用SDRAM作为数据或程序存储地址来完成设计, 是采用MegaWizard还是Plug-In Manager来将一个PLL在采用Quartus II软件的设计中的顶层示例?可以选择创建一个新的megafuntion变量, 然后在Plug-In manager中创建ALTCLKLOCK(I/P菜单)变量. 可以将PLL设置成多个, 或是将输入划分开来, 以适应设计需求. 一旦软件生成PLL, 将其在设计中示例, 并使用PLL的“Clock”输出以驱动CPU时钟输入和输出IP引脚.
 
2 max7000系列中, 只允许有两个输出使能信号, 可在设计中却存在三个, 每次编译时出现“device need too many [3/2] output enable signal. 如果不更换器件(使用的是max7064lc68. 如何解决这个问题?
答:Each of these unique output enables may control a large number of tri-stated signals. For example, you may have 16 bidirectional I/O pins. Each of these pins require an output enable signal. If you group the signals into a 16-bit bus, you can use one output enable to control all of the signals instead of an individual output enable for each signal. (参考译文:这两个独特的输出使能中每个都可能控制大量三相信号. 例如, 可能有16个双向I/O引脚. 每个引脚需要一个输出使能信号. 如果将这些信号一起分组到一个16位总线, 就可以使用一个输出使能控制所有信号, 而不用每个信号一个输出使能.
 
3 关于vhdl的问题:process(a, b, c) begin… end process; 如果abc同时改变, 该进程是否同时执行三次?
答:PROCESS STATEMENTS 中的执行跟逻辑有关系假如是同步逻辑则在每次时钟的触发沿根据A, B, C的条件来执行一次;假如是异步逻辑则根据判断ABC的条件来执行. 一般我们都推荐使用同步逻辑设计
 
4 在设计最初, 由于没有将时钟信号定义在全局时钟引脚上, 导致MAXPLUS II 在时间分析时提示错误:(时钟偏斜加上信号延迟时间超过输入信号建立时间). 全局时钟引脚的时钟信号到各个触发器的延时最小, 有没有可能通过编译软件设置, 将普通I/O脚上的时钟信号也经过芯片内部的快速通道以最小的延迟送到每个触发器时钟引脚?
答:you can register that signal and assign it as the global signal, by the step flow: assign->logic option->Individual logic options->Global signal. But you'd better input the clock signal through the dedicated input pin. (参考译文:可以寄存这个信号, 并将它指定为全局信号, 步骤如下:指定—>逻辑选项—>个别逻辑选项—>全局信号. 但是, 最好通过专用输入引脚输入时钟信号.
 
5 MaxplusII 软件设计完后, Delay Matrix查看延迟时间. 由于内部触发器的时钟信号用了一个输出引脚的信号, 譬如将一引脚ClkOut定义为Buffer, Clkout是一时钟信号, 然后反馈到内部逻辑, 内部逻辑用此信号作为时钟信号, 但用Delay Matrix, 却查看不到一些信号相应于ClkOut的延迟, 因为ClkOut是一Output引脚, Delay Matrix source 一栏中没有ClkOut信号, 如何解决这个问题?
答:这种做法在逻辑设计中称为GATE CLOCK, 所谓GATE CLOCK就是将设计中的组合逻辑结果拿来做时钟信号这是一种异步逻辑设计.
现在都推荐使用同步逻辑设计方法. 可以将该信号(CLKOUT)拿来作使能信号ENABLE信号而时钟信号还是采用原来的统一时钟使设计用尽量少的同步时钟这样一来就还是用DELAY MATRIX来分析原有的时钟.
 
6 我是一个epld的初学者, 目前看到xilinxVirtex-II中嵌入大量的资源如:Powerpcram, 究竟如何在fpga中使用这些资源?
答:Xilinx Virtex-II中嵌入的资源非常丰富, BlockRAMDigital Clock ManagerOn-chip termination等等. ISE 4.2i软件完全支持这些资源. 可以举出单元库中相应基本数据的实例. Xilinx Core Generator中也还支持BlockRAM等特性. 至于PowerPCMGT设计, 可以使用Virtex-II Pro开发者套件
 
7 在设计中, 往往需要对某个信号做一定(任意长)的延时, 有没有好的方法来实现?而不是采用类似移位寄存器的方法来延时
答:使用移位寄存器在FPGA中对信号进行延时是一种好方法. Xilinx Virtex架构中每个对照表(LUT)都能够设置成为具有可编程深度(最多为16)的移位寄存器. 这就提供了一种高效的途径来在FPGA中实现移位寄存器. 无须使用触发器就可以实现一个16位寄存器. 作为一个好的设计习惯, 任何情况下都不要通过闸延迟来实现延迟逻辑
 
8 ISE中的PAD TO PAD CONSTRAINT 是否是包括输入输出的pad时延之和再加上输入输出之间的组合逻辑的时延?还是只是输入输出之间的组合逻辑的时延?
答:Xilinx PAD-to-PAD contraint的确涉及到输入输出PAD时延. 这从布局后时序报告中可以看出
 
9 由于现在的设计基本上都是同步设计, 那么PAD TO PAD CONSTRAINT 在什么情况下使用?
答:虽然现今多数设计都是完全同步, 但仍有一些情况需要从一个输入引脚到另一个输出引脚的纯粹组合路径. 因此, 仍然需要PAD-to-PAD constraint控制这些路径的时延.
 
10              如何在ISE 中看到PAD TO PAD 的布线情况?
答:通常不必在意信号在FPGA内的路线, 只要它涉及到时序问题. 这种工具将对以优化的方式对设计进行路由. 如果希望检查具体路由, 可以使用Xilinx FPGA Editor, 它包含在ISE4. 2i软件中.
 
11              Xilinx Foundation 3. 1i下用JTAG PROGRAMER下载程序到芯片中, 可是总是出现如下错误:If the security flag is turned on in the bitstream, programming status can not be confirmed;others, programming terminated due to error. 测量电路信号, 没有相应的波形, 显然下载没有成功. 所用的芯片是:Xilinx Spartan2 XC2S50TQ144. 怎么解决?
答:This is a security feature. By disabling readback, the configuration data cannot be read back from the FPGA. This prevents others from pirating your intellectual properties. You can enable or disable this feature during bitstream generation. 
The proper way to determine if the configuration is finished without error is to check the status of the DONE pin on the FPGA. DONE pin should goes high if the bitstream is received correctly. Also, since you are using JTAG configuration, please make sure you have selected JTAG clock (not CClk) as your Startup clock during bitstream generation. (参考译文:这是保密功能. 通过禁用回读, 配置数据不能从FPGA回读. 这可以防止其他人盗用你的成果. 在生成位元流过程中, 可以启用或禁用这个功能.
确定配置是否准确无误地完成, 适合的方法就是检查FPGADONE引脚的状态. 如果正确地接收了位元流, DONE引脚将会升高. 而且, 既然使用JFAG配置, 就要确保在生成位元流过程中, 已经将JGAG时钟(而不是CClk)选作了Startup时钟.
 
12              Xilinx Virtex架构中每个对照表(LUT)都能够设置成为具有可编程深度(最多为16)的移位寄存器. 可否理解为, 在写设计的时候如果设计了一个深度不大于16位的移位寄存器, ISE综合时就会用一个LUT来替代它?
答:Most synthesis tools (e. g. Synplify Pro, Xilinx XST) are able to infer LUT based shift register (SRL16E) from your source code. Even for depth greater than 16, the tool is smart enough to infer multiple SRL16E to realize the shift register. Another way to utilize this feature is to instantiate an SRL16E in the source code. You can refer to the Library Guide in the Xilinx ISE software package for more details. (参考译文:大多数综合工具, 例如Synplify ProXilinx XST, 都能根据源代码中的移位寄存器SRL16E来推断 LUT. 即使是深度大于16的情况, 此类工具也能够推断出多SRL16E, 从而实现移位寄存器. 利用此功能的另一种途径是在原代码中例示一个SRL16E. 详细说明可以参考Xilinx ISE软件包中的库指南.
 
13              LUT是实现组合逻辑的SRAM, 怎样实现一个时序的移位寄存器, 是不是必须加一个触发器来配合LUT  
答:The LUTs in Xilinx Virtex architecture are not simply combinational logic. When it is configured as 16x1 RAM, the write operation is synchronous. When it is configured as shift register, there is no need to consume any flip-flop resource. In fact the internal circuitry of a Virtex LUT is more complicated than what it looks like. (参考译文:Xilinx Virtex结构中的LUT不是简单的组合逻辑。当它被配置为16x1 RAM时,写操作是同步的。当它被配置为移位寄存器时,则无需消耗任何flip-flop资源。事实上Virtex LUT的内部电路比看起来更复杂。)
 
14              foundation 3.1环境里怎么找不到启动testbench.vhd的程式?
答:伴随Foundation 3.1i出现的仿真器为门极仿真器, 因此你不能在这种设计环境下以VHDL级运行仿真. vhdl代码必须在你运行任何仿真之前进行综合. 因此, Foundation 3.1i环境下并不能使用vhdl testbench. 作为替代方式, 你可以编写仿真script.
实际上, Foundation 3.1i是一款相对较老的软件. Xilinx ISE软件中支持HDL testbench, 它的最新版本为4.2i.
 
15              关于双向口的仿真, 如果双向口用作输入口, 输出口该怎么设置?
答:做仿真时, 软件会自动地将IO(包括双向口)的引脚本加入到. SCF文件中去. 先新建一个SCF文件, 然后在NODE->ENTER NODES FROM SNF->LIST, 将列出的所有IO引脚(包括了双向口)都加入仿真文件中, 就可以进行仿真了
 
16              关于ACEX1KI/O脚驱动能力. ALTERA 计算功耗的datasheet 中:对ACEX1K器件, PDCOUT power of steady-state outputs)的计算就是根据IOH, IOL来计算的, 能否告诉我ACEX1K芯片的IOH, IOL分别是多少? 
答:关于ACEX1KIO驱动能力, IOH&IOL的大小可以从ACEX1K的数据手册中查到(ACEX. PDF PAGE 50/86).
17              设计中Vccio=3. 3V, 假如IOH=20mA, IOL=20mA, n="10" (Total number of DC output with steady-state outputs), 如何计算PDCOUT?
答:关于功耗的计算可以参照AN74(P2)中的功耗计算公式.
 
18              Vccio=3. 3V, 对于输入脚, 它兼容TTL, CMOS电平;对输出脚, 它是否也兼容TTLCMOS电平?对CMOS电平, 是否需要用OpenDrain 加上下拉电阻来实现?
答:ACEX1K器件引脚兼容TTLCMOS电平. COMS输出是否要加上拉电阻要看外部接的CMOS电平, 假如说接5V COMS则需要上拉详细情况可以参照AN117.
 
19              EPC2EPF10K30A连接成JTAG菊花链的形式, 在调试阶段可以跳过EPC2直接配置EPF10K30A, 而在配置通过验证以后再利用EPC2JTAG口将EPF10K30A的配置信息固化到EPC2中去. EPC2的专用配置端与EPF10K30A配置端连接, 当系统脱离JTAG电缆上电配置时, EPC2完成对EPF10K30A的配置. 这个过程中有一个疑问, EPF10K30A相当于有两个配置通道(一个通过JTAG, 一个通过EPC2), 当其中一个配置通道工作时, 另外一个配置通道的存在是否会影响到配置过程的正常进行呢?如果相互影响, 怎样才能做到两种方式同时存在又互不影响呢?
答:可以使10K30A拥有两个不同的下载方式在板子上做一个跳线开关即可. 也可以从当地的代理得到该模块的参考设计
 
20              ALTERA是建议直接使用MAXPLUSIIQUARTUS编译HDL源代码, 还是使用第三方EDA工具(如SYNPLIFYLeoanrdoSpectrumSYNOPSYS)先把HDL源代码编译为edf文件后再使用ALTERA的工具编译?
答:ALTERA建议用第三方的工具将HDL源代码编译为edf文件后再使用ALTERA的工具进行布局布线. ALTERAMAXPLUSIIQUARTUS也都自带有HDL的综合器, 一些简单的设计可以直接在MP2QII中编译即可. 而且可以直接在软件中后台调用第三方的EDA工具.
 
21              MAXPLUSIIQUARTUS多次编译同一设计生成的带延时的网表文件中的延时是否一样?
答:用MP2QII多次编译同一设计成的带延时的网表文件中的延时是一样但要保证该网表文件没有修改过.
 
22              在编译前设定一个模块的Synthesis StyleFAST是否一定比不设定(NONE)要节省LC资源?
答:在布局布线的过程中, Synthesis Style的设置会影响到资源的利用率和速度的快慢一般情况下:设置为FAST主要是为了提高设计的速度在软件中除了综合类型的设置还有一项是选择优化的目的:oPTIMIZE->AREA OR SPEED. 选择AREA可以节省设计所占用的资源
 
23              Altera公司对芯片热设计有哪些资料和工具?
答:ALTERA提供了许多计算功耗的资料和工具. 数据手册中的AN74就是关与计算ALTERA器件功耗的专门文档
 
24              如何在设计前期分析芯片的功耗?
计算功耗的工具: ALTERA提供的QUARTUS软件就有计算功耗的功能它可以根据你不同的激励项量来计算功耗; ALTERA 的网叶上就有专门计算功耗的运算器请点击相关文章它就给出了APEXII的功耗计算方法
 
25              看过“FLEX PCI Development Board”的参考设计原理图, 它利用了条线开关选择配置方式. 既然两种配置方式管脚并没有公用, 为何需要这个跳线开关呢?
答:EPC2不会影响到用下载电缆通过JTAG口配置EPF10K30A. 使用跳线开关是在选择给10K30A下载的方式是通过下载电缆还是EPC2. 
因为将ECP210K30A连接成JTAG菊花链的形式通过下载电缆下载和用EPC210K30A下载的连接方式是不同的, 所以要将这两者分开详细的连接方法应该在参考设计原理图中已经描绘的很清楚了
 
26              为了保证设计可靠性, 需要重点关注哪些方面? 
答:Here are a few guidelines for reliable FPGA design(关于可靠性FPGA设计的几点建议)
                  Use fully synchronous design. Asynchronous design is very sensitive to path delay and is therefore not robust. An example of asychronous circuit is the SR latch which uses combinational feedback. (使用完全同步设计. 异步设计对路径延迟非常敏感, 因此不很可靠. 异步电路的一个例子是使用组合反馈的SR闭锁.
                  Never gate your clock signal with combinational logic. Glitches may occur on any gated clock signals, which results in false triggering of flip-flops. (绝不使用组合逻辑控制时钟信号. 因为在任何门控制时钟信号上可能产生短时脉冲干扰, 最终导致错误触发flip-flop.
                  Never rely on gate delay. (绝不要依靠门延迟.
                  Enough bypass capacitors should be placed close to the power and ground pins of FPGA. Use capacitors with good high frequency response. FPGA的电源和接地引脚附近应该放置足够多的旁路电容器. 使用优质高频响应电容器.
                  Always use the global clock buffers on the FPGA to drive internal clock signals. These clock buffers and the associated clock distribution network have been carefully designed to minimize skew. (在FPGA上始终使用全局时钟缓冲来驱动内部时钟信号. 并且已经仔细设计了这些时钟缓冲和关联时钟配电网, 以将畸变减至最小.
 
27              You said "An example of asychronous circuit is the SR latch which uses combinational feedback". How do I learn SR latch ? What is the difference between SR latch and SRFF? (“异步电路的一个例子是使用组合反馈的SR闭锁”. 请问如何理解SR闭锁?SR闭锁与SRFF有什么区别?)
答:A latch changes states whenever the gate signal is active. A FF changes states only at clock edges. (参考译文:只要门信号是活动的, 闭锁就会更改状态. FF只有在时钟边沿才更改状态.
 
28              Xilinx公司的芯片在热设计方面可以提供哪些工具和资料?
答:For thermal consideration, you need to know the power consumption of your FPGA and the thermal resistivity of the device package you are using. The power consumption can be estimated by the XPower tool included in Xilinx ISE software. The thermal resistivity of the device package can be found in Xilinx databook. The junction temperature can then be calculated by the following formula(至于散热问题, 需要了解所用FPGA的功耗和正在使用的器件封装的热阻系数. Xilinx ISE软件中所包含的Xpower工具可以估计功耗. Xilinx数据手册中可以找到器件封装的热阻系数. 然后利用下面的公式计算接合温度.
P = (Tj - Ta) / THETAja    其中, P=功耗;Tj=接合温度;Ta=环境温度;THETAja = 封装的热阻系数
You can then detemine if the junction temperature falls within the acceptable region. The maximum acceptable junction temperature is different for C and I grade devices. If it is higher than the max. acceptable temperature, you may consider adding a heatsink or cooling fan. (之后确定接合温度是否在允许范围内. CI级器件允许的最高接合温度不同. 如果温度高于允许的最高值, 可能需要增加散热片或风扇.
 
29              如果时钟进入FPGA后经过一段组合逻辑才上时钟网络, 会存在一定的延时. 综合布线后会出现信号输入延时为负值, 意味着信号比时钟先到达触发器. 那么, 怎样通过约束文件增加输入信号的延时呢?我试过对"NET"加上"MEDDELAY"的约束, 但是没效果
答:Gating the clock signal with combinational logic is not recommended in modern high speed digital design since it may creates glitches on the gated clock signal, which results in false triggering of flip-flops. This results in a less reliable design. A common technique to remove gated clock is to make use of the clock enable pin of the flip-flop. For example, if you have a signal clko = clki & a & b driving the clock pin of a flip-flop, you can eliminate the gated clock by feeding clki directly to the FF clock pin, and have another signal en = a & b connected to the clock enable pin of the FF. ( 参考译文:在现代高速数字设计当中, 不建议使用组合逻辑门控时钟信号, 因为这将会在选通的时钟信号上产生短时脉冲波形干扰, 导致错误触发flip-flop. 这是缺乏可靠性的设计. 移除门控时钟通常所采用的技巧是使用flip-flop的时钟使能引脚. 例如, 如果有一个信号clko = clki & a & b 正在驱动flip-flop的时钟引脚, 则可以通过直接将clki传递给FF时钟引脚, 并将另一个信号en = a & bFF的时钟使能引脚连接, 来消除门控时钟. )
By removing the gated clock, you no longer have the problem of clock delay. Also the design is more robust. (移除门控时钟后, 就不再有时钟延迟的问题了. 而且这种设计也比较可靠. )




此用户离线!
共计在线时长40分钟2009/12/14 9:41:02
[ 资料 ] [ 短信 ] [ 好友 ] [ 文集 ] [ 引用 ] [ 回复 ] 点击返回顶部

alan (附小二年级)
第2楼 [ 字体: ] [ 编辑 ] [ 报告 ] [评分]
Rank:2
Rank:2
Rank:2
UID 15
帖子 18
积分 50 点
金币 87 枚
魅力 35 度
注册 2009年11月25日
回复:可编程逻辑器件射击技巧
表情图标EM1



此用户离线!
共计在线时长80分钟2009/12/15 9:07:27
[ 资料 ] [ 短信 ] [ 好友 ] [ 文集 ] [ 引用 ] [ 回复 ] 点击返回顶部

nihao (附小一年级)
第3楼 [ 字体: ] [ 编辑 ] [ 报告 ] [评分]
Rank:1
Rank:1
UID 229
帖子 22
积分 22 点
金币 67 枚
魅力 23 度
注册 2018年9月11日
回复:可编程逻辑器件射击技巧



此用户离线!
共计在线时长0分钟2018/9/11 16:19:20
[ 资料 ] [ 短信 ] [ 好友 ] [ 文集 ] [ 引用 ] [ 回复 ] 点击返回顶部

« 首页1 »2/共1页


查看积分策略说明快速回复你的内容
快捷回复标题 (选填) 快捷插入表情图标
验 证 码  点击获取验证码
快捷回复内容

自动复制

Powered by TEAM 2.0.5 Release - ACC © 2005 Team5 Studio All rights reserved