PLD设计问答(DOC,22)

来源:教案设计 发布时间:2022-10-27 15:15:08

下面是小编为大家整理的PLD设计问答(DOC,22),供大家参考。

PLD设计问答(DOC,22)

 

 PLD 设计问答(DOC 22)

  1. 什么是.scf? 答:SCF 文件是 MAXPLUSII 的仿真文件,

 能够在 MP2 中新建.

  1. 用 Altera_Cpld 作了一个 186〔主 CPU〕操纵 sdram 的操纵接口, 发觉问题:要使得 sdram 读写正确, 必须把 186(主 CPU)的 clk送给sdram, 而不能把clk经cpld的延时送给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; 假如 a、b、c 同时改变, 该进程是否同时执行三次? 答:PROCESS STATEMENTS 中的执行跟逻辑有关系,

 假如是同步逻辑,

 那么在每次时钟的触发沿依照 A, B, C 的条件来执行一次;假如是异步逻辑,

 那么依照判定 A、B、C 的条件来执行. 一样我们都举荐使用同步逻辑设计

 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 的初学者, 目前看到 xilinx 的 Virtex-II 中嵌入大量的资源如:powerpc、ram 等, 怎么说如何在 fpga 中使用这些资源? 答:Xilinx Virtex-II 中嵌入的资源专门丰富, 如 BlockRAM、Digital Clock Manager、On-chip termination 等等. ISE 4.2i 软件完全支持这些资源. 能够举出单元库中相应差不多数据的实例. Xilinx Core Generator中也还支持BlockRAM等特性. 至于PowerPC和MGT设计, 能够使用 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回读. 这能够防止其他人盗用你的成果. 在生成位元流过程中, 能够启用或禁用那个功能.

 确定配置是否准确无误地完成, 适合的方法确实是检查FPGA上DONE 引脚的状态. 假如正确地接收了位元流, 那么 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 Pro 和 Xilinx 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. 关于 ACEX1K 的 I/O 脚驱动能力. ALTERA 运算功耗的datasheet 中:对 ACEX1K 器件, PDCOUT 〔power of steady-state outputs〕的运算确实是依照 IOH, IOL 来运算的, 能否告诉我

 ACEX1K 芯片的 IOH, IOL 分别是多少?

  答:关于 ACEX1K 的 IO 驱动能力, 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 电平;对输出脚, 它是否也兼容 TTL 和 CMOS 电平?对 CMOS 电平, 是否需要用 OpenDrain 加上下拉电阻来实现? 答:ACEX1K 器件引脚兼容 TTL 与 CMOS 电平. COMS 输出是否要加上拉电阻要看外部接的 CMOS 电平, 假如说接5V COMS 那么需要上拉.

 详细情形能够参照 AN117.

  19. 将EPC2与EPF10K30A连接成JTAG菊花链的形式, 在调试时期能够跃过 EPC2 直截了当配置 EPF10K30A, 而在配置通过验证以后再利用 EPC2 的 JTAG 口将 EPF10K30A 的配置信息固化到EPC2 中去. EPC2 的专用配置端与 EPF10K30A 配置端连接, 当系统脱离 JTAG 电缆上电配置时, 由 EPC2 完成对 EPF10K30A 的配置. 那个过程中有一个疑问, EPF10K30A 相当于有两个配置通道〔一个通过 JTAG, 一个通过 EPC2), 当其中一个配置通道工作时,

 另外一个配置通道的存在是否会阻碍到配置过程的正常进行呢?假如相互阻碍, 如何样才能做到两种方式同时存在又互不阻碍呢? 答:能够使 10K30A 拥有两个不同的下载方式,

 在板子上做一个跳线开关即可. 也能够从当地的代理得到该模块的参考设计.

 20. ALTERA 是建议直截了当使用 MAXPLUSII 或 QUARTUS 编译 HDL 源代码, 依旧使用第三方 EDA 工具〔如 SYNPLIFY、LeoanrdoSpectrum 或 SYNOPSYS〕先把 HDL 源代码编译为 edf 文件后再使用 ALTERA 的工具编译? 答:ALTERA 建议用第三方的工具将 HDL 源代码编译为 edf 文件后再使用 ALTERA 的工具进行布局布线. ALTERA 的 MAXPLUSII 和QUARTUS 也都自带有 HDL 的综合器, 一些简单的设计能够直截了当在MP2或QII中编译即可. 而且能够直截了当在软件中后台调用第三方的...

推荐访问:22) 问答 设计 PLD 简述pld的设计开发流程
上一篇:三年级秋学期信息技术上册教案
下一篇:photoshop培训教案(下)【精选推荐】

Copyright @ 2013 - 2018 小艾秘书网 All Rights Reserved

小艾秘书网 版权所有 湘ICP备11019447号-75