fpga

9 FPGA时序约束实战篇之衍生时钟约束

你离开我真会死。 提交于 2020-01-29 18:05:09
约束衍生时钟   系统中有4个衍生时钟,但其中有两个是MMCM输出的,不需要我们手动约束,因此我们只需要对 clk_samp 和 spi_clk 进行约束即可。约束如下: create_generated_clock -name clk_samp -source [get_pins clk_gen_i0/clk_core_i0/clk_tx] -divide_by 32 [get_pins clk_gen_i0/BUFHCE_clk_samp_i0/O] create_generated_clock -name spi_clk -source [get_pins dac_spi_i0/out_ddr_flop_spi_clk_i0/ODDR_inst/C] -divide_by 1 -invert [get_ports spi_clk_pin]   我们再运行 report_clocks ,显示如下: 我们在理论篇的“create_generated_clock”一节中讲到,我们可以重新设置Vivado自动生成的衍生时钟的名字,这样可以更方便我们后续的使用。按照前文所讲,只需设置 name 和 source 参数即可,其中这个 source 可以直接从 report_clocks 中得到,因此我们的约束如下: create_generated_clock -name clk_tx

7系列FPGA逻辑单元理解

只谈情不闲聊 提交于 2020-01-29 03:38:35
7series 逻辑单元理解 ug768和ug799文档介绍了7系列芯片中包含的基本逻辑单元,对其中常用的单元,进行下分析。 1、IOBUF单元 (1)真值表 (2)用途 the design element is a bidirectional single-ended I/O Buffer used to connect internal logic to an external bidirectional pin. (3)属性 (4)模型 (5)心得体会 IOBUF作为FPGA内部逻辑与外部逻辑的接口,通常被打包成多bit进行使用;与CPLD一样,可以直接使用assign out = sel ? internal : 'dZ ,编译器综合成此模块。 2、FDPE单元 (1)真值表 (2)用途 (3)属性 (4)模型 。 (5)心得体会 FDPE作为带有异步预置位的DFF,一般用作复位电路中,可以作为MMCM中不同时钟域中复位的输出。参看《Xilinx FPGA复位逻辑处理小结》 3、FDCE/FDPE/FDRE/FDSE区别: FDCE FDPE FDRE FDSE 名称含义 C:asynchronous clear P: asynchronous preset R: synchronous reset S: synchronous set 时钟域 异步 异步 同步 同步

FPGA调试的吐槽

时光毁灭记忆、已成空白 提交于 2020-01-26 16:44:50
  这几天在调试FPGA,觉得确实很复杂,之前 所认为的仿真结束之后应该就没有问题的,可不知道,这个各个模块的端口信号和自己想象的还是差得很远, 这几天迷茫慌乱中度过 ,不知道用什么工具可以让自己更了解FPGA内部的各个模块的工作情况,可是下一步怎么做还不是特清楚,时间好紧张呀,感觉自己 准备考试的时间不够用了,能把基本的功能调试出来就不错了,计划还是不够精确呀,怎么会这么难呢? 有没有同学能给一下他调试的参考方案,给几个建议 ~ 来源: https://www.cnblogs.com/woshitianma/archive/2013/01/23/2872551.html

XILINX FPGA 7系之 Distribute RAM

耗尽温柔 提交于 2020-01-26 09:51:27
XILINX FPGA 7系之 CLB/LUT 可以知道 CLB 是基本的组成单元,SLICE 也是 CLB 的基本组成单元,为了更好的使用 XILINX FPGA ,有必要在深挖一下 Distribute RAM(分布式内存); XILINX 的 “ ug474_7Series_CLB.pdf ” 文档的 “Ch.2 中的 Distribute RAM ”章节有对此的详细描述 值得注意的是 XILINX CLB 的 LUT内部结构决定, Distribute RAM 只能够由 SLICEM 组成 ,SLICEL 是无法组成 Distribute RAM 的;SLICEM 构成 Distribute RAM 是通过其中的 LUT 实现的,1 个 SLICEM 是如下的结构: 可以看到 1 个 SLICEM 有 4 个 LUT,每个 LUT 都是 6 输入,所以 1 个 LUT 可以寻址空间是 2^6=64bits,那么 4 个 LUT 便可以级联组成 4x2^6=256bits,即,一个 SLICEM 最大可以包含 256bits RAM内容; 通过配置可以使用 1 个 SLICEM 实现如下 RAM: Single-Port 32 x 1-bit RAM Dual-Port 32 x 1-bit RAM Quad-Port 32 x 2-bit RAM Simple Dual

How to convert 24MHz and 12MHz clock to 8MHz clock using VHDL?

蓝咒 提交于 2020-01-26 04:55:24
问题 I am writing a code using VHDL to convert 24MHz and 12 MHz clock to 8 MHz clock. Can anyone please help me in this coding? Thanks in advance. 回答1: Is this for an FPGA? Or something else? Are you really dividing a clock, or just a signal? For a divide by three counter, try this link: http://www.asic-world.com/examples/vhdl/divide_by_3.html And for a 2/3: http://www.edaboard.com/thread42620.html 回答2: As Martin has already said, use a clock management device by Xilinx recommendations in order to

FPGA设计——计数器架构

主宰稳场 提交于 2020-01-26 03:26:52
FPGA的计数器架构设计:以计数器作为模块的主体结构。以计数器作为系统框架,信号与计数器对齐进行跳变。应用于串口、VGA等接口。 设计步骤 第一步:明确功能 明确功能是将要实现的功能用具体、清晰的描述出来,用信号列表表示。将模块中要使用的端口列出,说明其信号流向、位宽、功能。 第二步:功能波形 功能波形是将描述的功能用波形表示出来,波形的变化要表示清楚,要具体到多少个时钟期。并将这些波形画出来。 第三步:计数结构 计数结构是通过一个或多个计数器,搭建成一个完整的设计框架,从而作为其他信号的对齐条件。计数器优秀的标准是:用计数器能任何一个时钟;能方便地被其他信号归纳使用。 第四步:加1和结束条件 加1和结束条件是考虑计数器的加1条件和结束条件,如果条件不足时,则要添加信号来指示。 (1)逐个计数器考虑其加1条件和结束条件; (2)加1条件和结束条件必须精确到某个时钟上升沿; (3)条件必须用信号表示。 所谓的计数器加1条件就是在满足计数条件的情况下结束值加1,一般其值每过一个时钟周期加1,而有效计数器则可能会经过好几个时钟周期。结束值是满足加1条件下,计数的最后一个值。 第5步:定义特殊点 定义特殊点是将要用到的特殊时刻点,如计数器结束点/触发点/开始点/中间点等,根据需要挑选出来,并用信号表示出来。 第六步:完整性检查 完整性检查时保证每个信号,包括计数器/添加的信号

How to debug after implementation? My code that works perfectly in simulation shows strange behaviour in hardware

蹲街弑〆低调 提交于 2020-01-25 07:35:11
问题 My code for a reaction tester works perfectly and as it should in simulation. But when I move it to my FPGA device it just stalls as soon as I press the start button and I cannot figure out what goes wrong as it is working perfectly in simulation. The concept is, when reset is pressed display Hi on the screen, when start is pressed, pick a random value from LFSR and count up to max value, thus making it a random delay. When max count for this reg is reached turn on the led, start the timer

FPGA黑金开发板 CYCLONE IV核心板全新上市!!!!

三世轮回 提交于 2020-01-25 05:43:02
FPGA: EP4CE15F17C8N SDRAM: 256Mbit (16M*16bit) SRAM: 4Mbit (256K*16bit) 串行FLASH: 64Mbit (EPCS64) 并行FLASH: 32Mbit (4M*8bit) 排座: 2.0mm 22*2 双晶振: 50M/40M(图中只焊接了一个晶振,出售的核心板,两个晶振都会焊接) IO数量: 扩展出的IO口有110根(2.54mm间距的扩展口) 下载方式: 支持AS模式和JTAG模式 自定义指示灯: 4个 复位按键: 1个 下载指示灯: 1个 硬件兼容: 此核心板与黑金二代核心板兼容,可以直接与底板连接使用,进行硬件升级。 结构: 76*76mm 有黑金动力社区推出的这款CYCLONE IV(4代)核心板使用的FPGA型号为:EP4CE15F17C8N,这款芯片指标如下图所示: 这款芯片采用经过优化的60-nm低功耗工艺,Cyclone IV E FPGA拓展了前一代Cyclone III FPGA的低功耗优势。最新一代器件降低了内核电压,与前一代产品相比,总功耗降低了25%。 这款开发板采用的是四层PCB设计,沉金工艺,同时使用BGA封装的FPGA,使整个核心板的性能和稳定性有了很大的提供。 此核心板与黑金二代核心板引脚兼容,可以直接与底板连接使用,进行硬件升级。购买过FPGA黑金开发板(DB2C8

【转帖】英特尔打响数据中心复兴之战!四大架构轰向云端,营收创新高

佐手、 提交于 2020-01-24 23:50:05
英特尔打响数据中心复兴之战!四大架构轰向云端,营收创新高 https://mp.weixin.qq.com/s/rZpYzCrnNbQs5_6PStT_zQ    芯东西(ID: aichip001)文:心缘   回到 1968 年,英特尔创始人罗伯特·诺伊斯和戈登·摩尔希望以两人名字的组合命名新公司——Moore Noyce(摩尔·诺伊斯)。   然而这个名字被一家连锁酒店抢先注册了,无奈之下,两位创始人改取“Integrated Electronics(集成电子)”两个单词的缩写“Intel(英特尔)”为公司名,偏巧,这也是英文单词“智能”Intelligence 的前几个字母。   或许冥冥之中,命运已经将英特尔和五十年后的智能化浪潮牵了一条红线。   从数据中心、自动驾驶到物联网,英特尔正在编织一张全面的人工智能(AI)软硬件巨网,试图在滚滚奔涌向前的新一代数据革命中,以前瞻性的布局立于不败之地。   据美国市场研究机构 Gartner 在 1 月 14 日发布的最新报告,2019 年全球半导体收入总计 4183 亿美元,较 2018 年下降 11.9%。   在整体市场陷入低迷状态之际,英特尔却迎来了颇为亮眼的成绩单,不仅时隔三年重返全球半导体市场榜首,而且其第四季度和财年营收均创纪录。 2019 年全球半导体厂商销售额排行榜前十(来源:Gartner)   2020 年

VHDL - PhysDesignRules:367

本小妞迷上赌 提交于 2020-01-24 13:18:21
问题 I am getting a warning when i try synthesize,implement, and generate program file from my VHDL Code. When i try to synthesize i get this error WARNING:Xst:647 - Input <BTN_3> is never used. This port will be preserved and left unconnected if it belongs to a top-level block or it belongs to a sub-block and the hierarchy of this sub-block is preserved. When i Implement it i get this WARNING:PhysDesignRules:367 - The signal <BTN_3_IBUF> is incomplete. The signal does not drive any load pins in