摘要: 使用XILINX进行开发的朋友经常会用到CoreGen生成的Core,尤其是各类FIFO,非常方便而且高效。但是对于初次使用core的朋友来说,仿真、综合以及PR阶段需要注意一些事项,否则不能顺利进行。这里就介绍一下其调用方法。由于Core的种类很多,这里以“用block memory”生成FIFO为例。step 1. CoreGen 生成名为myfifo的定制core,这个相信不用赘述,大家都会。step 2. 仿真 仿真时,需要把作为wrapper(外壳)的 myfifo.v 文件和作为behaviorial model(行为模型)的 BLK_MEM_GEN*.v文件也include进去。 阅读全文
posted @ 2011-07-14 18:56 sangreal 阅读(616) 评论(0) 推荐(0) 编辑
摘要: 首先,我把我用到的软件说明一下。如果你发现根据我的操作,你还是解决不了ModelSim后仿真的问题,那就可能是软件版本的问题。1,ModelSim Se 6.1b2,Synplify Pro 7.5.13,ISE 5.2i (这个是老了点)4,WindowsXP(这个应该没有多大的关系) 还有就是我使用的是verilog,我想VHDL的方法与verilog是差不多的,最多也就是在建库方面有点差别而已。下面的这些方法,是我这3天搞出来的。当然也参考了一些文章。如果谁有更方便的方法,欢迎指出来。一、为modelsim生成3个库。首先,介绍一下这三个库。Simprim_ver:用于布局布线后的仿真。 阅读全文
posted @ 2011-07-14 18:44 sangreal 阅读(1580) 评论(0) 推荐(0) 编辑
摘要: 异步复位相比同步复位: 1. 通常情况下(已知复位信号与时钟的关系),最大的缺点在于异步复位导致设计变成了异步时序电路,如果复位信号出现毛刺,将会导致触发器的误动作,影响设计的稳定性。 2. 同时,如果复位信号与时钟关系不确定,将会导致亚稳态情况的出现。下面先给出一个例子,然后就亚稳态进行重点讨论。 Figure 1 shows an asynchronous race condition where a clock signal is used to reset a flip-flop. When SIG2 is low, the flip-flop is reset to a low st 阅读全文
posted @ 2011-07-14 18:34 sangreal 阅读(1037) 评论(0) 推荐(0) 编辑
摘要: (原文请参考:http://article.ednchina.com/2004-8/AtcShow2005127160310.htm 文中的红色是james建议大家重点理解的内容,红色括号是james的comment。) 只有最初级的逻辑电路才使用单一的时钟。大多数与数据传输相关的应用都有与生俱来的挑战,即跨越多个时钟域的数据移动,例如磁盘控制器、CDROM/DVD 控制器、调制解调器、网卡以及网络处理器等。当信号从一个时钟域传送到另一个时钟域时,出现在新时钟域的信号是异步信号。 在现代 IC、ASIC 以及 FPGA 设计中,许多软件程序可以帮助工程师建立几百万门的电路,但这些程序都无法解决 阅读全文
posted @ 2011-07-14 18:00 sangreal 阅读(795) 评论(0) 推荐(0) 编辑
摘要: 一:generateVerilog-2001添加了generate循环,允许产生module和primitive的多个实例化,同时也可以产生多个variable,net,task,function,continous assignment,initial和always。在generate语句中可以引入if-else和case语句,根据条件不同产生不同的实例化。用法:1. generate语法有generate for, genreate if和generate case三种2. generate for语句必须有genvar关键字定义for的变量3. for 的内容必须加begin和end4. 阅读全文
posted @ 2011-07-14 17:20 sangreal 阅读(1940) 评论(0) 推荐(0) 编辑
摘要: Attribute/Directive Description black_box_pad_pin DirectiveSpecifies that a pin on a black box is an I/O pad. It is applied to a component, architecture, or module, with a value that specifies the set of pins on the module or entity. black_box_tri_pins DirectiveSpecifies that a pin on a black box is 阅读全文
posted @ 2011-07-14 15:22 sangreal 阅读(1579) 评论(0) 推荐(0) 编辑
摘要: 标题中的“高手必由之路”是我加上去的,呵呵。不过我本人确实是这么认为的。做系统实现的人如果不知道如何加约束和如何做时序分析,那就绝对成不了高手。原作者是westor。很多人发贴,来信询问关于约束、时序分析的问题,比如:如何设置setup,hold时间?如何使用全局时钟和第二全局时钟(长线资源)?如何进行分组约束?如何约束某部分组合逻辑?如何通过约束保证异步时钟域之间的数据交换可靠?如何使用I/O逻辑单元内部的寄存器资源?如何进行物理区域约束,完成物理综合和物理实现?等等。。。为了解决大家的疑难,我们将逐一讨论这些问题。有些人不知道何时该添加约束,何时不需要添加?有些人认为低速设计不需要时序约束 阅读全文
posted @ 2011-07-14 14:47 sangreal 阅读(2231) 评论(0) 推荐(0) 编辑
摘要: 无意间找到了这个表格, 标明了在opencores网站上的各类已经验证过的开源IP,提供给大家下载。#IP CoreFPGAASICWISH BONEOther I/FInfoNetworking, Communications, Connectivity1USB 1.1 PhyUSB, UTMI2USB 1.1 Device IP CoreUTMI3USB 2.0 Device IP CoreUTMI4Asynchronous Serial IO ControllerRS2325Single Slot PCM ControllerTDMI6AC97 Controller IP CoreAC9 阅读全文
posted @ 2011-07-14 13:02 sangreal 阅读(724) 评论(0) 推荐(0) 编辑
摘要: ———版权声明———–本文作者 Ricky Suwww.fpganotes.comrickysu.fpga@gmail.com欢迎转载,转载请保持原样及署名商业使用须得到本人授权———版权声明———–0. 序俗话说,好的开始是成功的一半。在这个信息爆炸的时代,好的资料就是成功学习的一半。时常看到有人在论坛上跪求资料,也有人在论坛上灌水换积分排队下资料。如果这篇文章能帮助大家花更少的时间找到更有价值的资料,那么我花时间维护这篇文章也就值了。好,废话不多说,我们言归正传。写这篇文章主要想介绍Xilinx各种资料的找法、分类方法和什么问题该看哪些资料。限于经验,难免有错漏,希望大家指出错误并继续补充 阅读全文
posted @ 2011-07-14 08:41 sangreal 阅读(657) 评论(0) 推荐(1) 编辑
摘要: Install - 不要把ISE装在FAT32上Don't install ISE on hard drive partition with FAT32. It will have permission errors.Reference: AR3279611.4 一键使用PlanAhead查看网表Using this tip, we can view ISE design's netlist schematic with PlanAhead by only one click in ISE project. The process is really easy. PlanAhe 阅读全文
posted @ 2011-07-14 08:38 sangreal 阅读(424) 评论(0) 推荐(0) 编辑
摘要: IntroductionBlackBox是FPGA设计中一个重要的技巧,不过觉得Xilinx的文档没有很好地将它讲清楚。BlackBox的主要想法就是把设计的某一个子模块单独综合,综合的结果作为一个黑盒子子模块,上层设计不再对这个模块进行优化,只能看到它的端口。How To要让XST实现BlackBox,其实非常简单,将一个子模块单独综合后,会得到ngc文件或者edif文件。在使用这个网表时,在子模块的描述文件中只要包含端口信息而不要实现的信息(这个文件通常称为wrapper),这样XST就会自动寻找project目录下的网表文件了。不过HDL文件和网表文件的文件名得相同。如果网表文件不在pr 阅读全文
posted @ 2011-07-14 08:34 sangreal 阅读(505) 评论(0) 推荐(0) 编辑
摘要: Intro问:一个FPGA设计项目需要用哪些评判标准来检验?功能正确;时序收敛;资源消耗少。时序收敛,即Timing Closure,意思是使设计的各项时序指标能满足设计前所制定要求。因此,整个过程分为两部分:制定时序要求满足时序要求Timing Constraints Classes制定时序要求通常是由整个系统电路的外部环境来决定的,比如:整个电路系统提供给FPGA的时钟速度为多快FPGA输入数据是同步信号还是异步信号以及它的频率FPGA输出数据所需的频率输入/输出数据与时钟的相位关系总结以上各种需求情况,得出FPGA芯片对外的三种时序约束:Period(时钟周期约束):约束用同一时钟驱动的 阅读全文
posted @ 2011-07-14 08:26 sangreal 阅读(1780) 评论(0) 推荐(0) 编辑