PLD设计问答
1. ?
答: SCF文件是MAXPLUSII仿真文件, 能够在MP2中新建.
用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引脚.
在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位总线, 就能够使用一个输出使能控制全部信号, 而不用每个信号一个输出使能. )
相关vhdl问题: process(a, b, c) begin… end process; 假如a、 b、 c同时改变, 该进程是否同时实施三次?
答: PROCESS STATEMENTS 中实施跟逻辑相关系, 假如是同时逻辑, 则在每次时钟触发沿依据A, B, C条件来实施一次; 假如是异步逻辑, 则依据判定A、 B、 C条件来实施. 通常我们全部推荐使用同时逻辑设计
在设计最初, 因为没有将时钟信号定义在全局时钟引脚上, 造成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. (参考译文: 能够寄存这个信号, 并将它指定为全局信号, 步骤以下: 指定—>逻辑选项—>部分逻辑选项—>全局信号. 不过, 最好经过专用输入引脚输入时钟信号. )
用MaxplusII 软件设计完后, 用Delay Matrix查看延迟时间. 因为内部触发器时钟信号用了一个输出引脚信号, 譬如将一引脚ClkOut定义为Buffer, Clkout是一时钟信号, 然后反馈到内部逻
2021年PLD设计问答解析样本 来自淘豆网www.taodocs.com转载请标明出处.