随笔分类 -  FPGA

(笔记)FPGA多周期路径及set_multicycle_path详解
摘要:默认情况下综合工具会把每条路径定义为单周期路径,即源触发器在时钟的任一边沿启动(launch)的数据都应该由目的触发器在时钟的下一上升沿捕获(capture)。 有的设计可能存在时序例外(timing exceptions),如多周期路径、虚假路径等。数据从起点到终点的传输时间需要一个时钟周期以上才 阅读全文

posted @ 2024-03-14 11:19 tdyizhen1314 阅读(1009) 评论(0) 推荐(0) 编辑

(笔记)Vivado操作之时序约束介绍
摘要:一、前言 任何一个FPGA工程都需要设置相关的时序约束,下面将介绍Vivado中如何进行时序约束操作以及各种约束的使用方法。 二、时序约束界面 在一个工程运行到IMPLEMENTATION后,进入到左侧的Flow Navigator窗口,点击IMPLEMENTION下的Edit Constraint 阅读全文

posted @ 2024-03-08 14:55 tdyizhen1314 阅读(2685) 评论(0) 推荐(0) 编辑

(笔记)Vivado使用技巧:阅读时序报告及分析时序路径
摘要:Vivado 中的时序报告可以快速定位时序违例的原因,因此,学会阅读时序报告有助于分析时序路径。Xilinx 官方文档 UG906 中介绍了如何在 Vivado 中阅读时序报告。 The Timing Path Summary displays the important information f 阅读全文

posted @ 2024-02-29 10:23 tdyizhen1314 阅读(1700) 评论(0) 推荐(0) 编辑

(笔记)FPGA设计性能优化策略漫谈(一)--时序优化
摘要:1 速度优化 1.1 关键路径重组 FPGA逻辑设计中时序路径上的组合逻辑都会给路径增加延时,从而影响设计性能的往往只有几条关键的路径而已,所以可以通过减少关键路径上的组合逻辑单元数来减小该路径上的延时,从而达到优化的目的。关键路径重组技术多用于关键路径由多个路径组合而成的场合,而且这些被组合的路径 阅读全文

posted @ 2024-02-28 16:20 tdyizhen1314 阅读(518) 评论(0) 推荐(0) 编辑

(笔记)VHDL/Verilog之CRC(循环冗余校验)计算
摘要:背景:我们在使用VHDL或Verilog进行FPGA开发时,经常会遇到CRC校验计算的情况,如校验公式为: G(x) = X8 + X4 + X3 + X2 + 1 G(x)=X3 +X+1 那使用VHDL或Verilog语言该如何进行设计呢?下方是总结分享。 1、首先推荐一个CRC循环冗余校验的在 阅读全文

posted @ 2022-12-01 13:18 tdyizhen1314 阅读(1410) 评论(0) 推荐(0) 编辑

(原创)HDL中的unsigned与signed
摘要:unsigned与signed:想必大家在C语言是经常用到,可不知HDL语言中的unsigned与signed是否常用罗!其含义与C语言中的意思无异,区别主要是取值范围。unsigned和signed在一种类型下,unsigned表示在这个范围大小的整数,signed一般都是在这个范围内的从负到正,即其最高位为符号位。unsigned( 无符号整数 ):无符号整数 (unsigned) 和前面的" 标准逻辑" 向量 (std_logic_vector) 信号相似, 并且可以相互转换。注:定义无符号数时必须指明这个无符号整数的位数序列编号是从高到低 , 一定要使用 downt 阅读全文

posted @ 2012-08-10 20:44 tdyizhen1314 阅读(937) 评论(0) 推荐(0) 编辑

(原创)同步复位与异步复位
摘要:一、同步复位与异步复位1、同步复位与异步复位含义:同步复位:顾名思义,同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。否则,无法完成对系统的复位工作。用Verilog描述如下:always@(posedgeclk)beginif(!Rst_n) ...end异步复位:它是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。用Verilog描述如下:always@(posedgeclkornegedgeRst_n)beginif(!Rst_n) ...end2、同步复位与异步复位优缺点:1、总的来说,同步复位的优点大概有3条: a、有利于仿真器的仿真。 b、可以使所设计的系统成为1 阅读全文

posted @ 2012-08-08 19:30 tdyizhen1314 阅读(1184) 评论(0) 推荐(0) 编辑

(转)如何以32 bit的方式存取SDRAM?
摘要:全文地址:http://www.cnblogs.com/oomusou/archive/2008/11/25/sdram32.htmlAbstract在DE2因為只有一顆16 bit的SDRAM,儘管Nios II CPU是32 bit,存取SDRAM時必須透過Dyanamic Bus Sizing機制,花2個clk才能將32 bit資料讀取/寫入SDRAM;但DE2-70有2顆16 bit SDRAM,是否使用雙通道的方式,將這2顆16 bit SDRAM看成1顆32 bit SDRAM使用呢?Introduction這個做法是Mithril所提供,感謝Mithril無私的分享,我只是加以整 阅读全文

posted @ 2012-04-03 17:10 tdyizhen1314 阅读(548) 评论(0) 推荐(0) 编辑

(转)如何設計乘加電路?
摘要:全文地址:http://www.cnblogs.com/oomusou/archive/2008/10/11/verilog_alt_multadd.htmlAbstractz = a*b + c*d;一個很簡單的運算,該如何使用數位電路實現呢?Introduction使用環境:Quartus II 8.0在(原創) 如何設計2數相加的電路? (SOC) (Verilog)中,我們討論過如何實現y = a + b;但在實務上,其實最常用的是y = a*b + c*d,由於Verilog與數位電路本身的限制,不適合真的去實現很複雜的數學,就算真的實現出來,電路也跑不快,又佔resource,所以 阅读全文

posted @ 2012-04-03 17:09 tdyizhen1314 阅读(283) 评论(0) 推荐(0) 编辑

(转)如何编写testbench的总结(非常实用的总结)
摘要:全文地址:http://hi.baidu.com/li0610302/blog/item/ffe232ed59e4dbd82f2e219e.html如何编写testbench的总结(非常实用的总结)1.激励的设置相应于被测试模块的输入激励设置为reg型,输出相应设置为wire类型,双向端口inout在测试中需要进行处理。方法1:为双向端口设置中间变量inout_reg作为该inout的输出寄存,inout口在testbench中要定义为wire型变量,然后用输出使能控制传输方向。eg:inout [0:0]bi_dir_port;wire[0:0]bi_dir_port;reg[0:0]bi_ 阅读全文

posted @ 2012-04-03 17:07 tdyizhen1314 阅读(572) 评论(0) 推荐(0) 编辑

(转)Altera Forum精彩问答汇总
摘要:原文链接:http://group.ednchina.com/56/31122.aspxAltera Forum精彩问答汇总I can't afford losing any of these invaluable information anymore! It is not too late if I start reading and collecting them from now on. I will look the threads through everyday as I do with my Hotmail E-mails and EETimes RSSs.It' 阅读全文

posted @ 2012-04-03 17:06 tdyizhen1314 阅读(306) 评论(0) 推荐(0) 编辑

(转)FPGA Design's Tips
摘要:转载地址:http://www.cnblogs.com/Jerome_Lee/archive/2009/11/19/1606358.html1、状态机的问题,尽量不要写出太大的状态机,宁愿用一些小型的状态机来相互关联。2、推荐大家使用timequest来做时序约束,好处是,它可能对你的时序约束和你的设计对照做分析,在做时序分析之前,先对你的约束做分析,然后告诉你,你有多少该做的事情而没有做的(为被约束的路径)还有多少你要求做的,而没有被做的(被忽略的时序要求)。3、对时钟的约束,要重点关注两个现象。首先是尽量少的在时钟路径上引入逻辑,否则可能造成了时钟和时钟之间的skew。另外就是一种上下沿都 阅读全文

posted @ 2012-04-03 17:05 tdyizhen1314 阅读(270) 评论(0) 推荐(0) 编辑

(转)Altera的几个常用的Synthesis attributes
摘要:各厂商综合工具,对HDL综合时都定义了一些综合属性这些属性可指定a declaration,a module item,a statement, or a port connection 不同的综合方式。语法为:/* synthesis, <any_company_specific_attribute = value_or_optional_value */下面就是Altera的几个常用的Synthesis attributesNopruneA Verilog HDL synthesis attribute that prevents the Quartus II software fr 阅读全文

posted @ 2012-04-03 17:03 tdyizhen1314 阅读(1091) 评论(0) 推荐(0) 编辑

(转)如何使用ModelSim作前仿真與後仿真? (SOC) (Quartus II) (ModelSim)
摘要:Abstract本文介紹使用ModelSim做前仿真,並搭配Quartus II與ModelSim作後仿真。Introduction使用環境:Quartus II 8.1 + ModelSim-Altera 6.3g由於FPGA可重複編程,所以不少開發人員就不寫testbench,直接使用Quartus II的programmer燒進開發板看結果,或者使用Quartus II自帶的Waveform Editor進行仿真,這種方式雖然可行,但僅適用於小project,若project越寫越大,Quartus II光做fitter就很耗時間,一整天下來都在作Quartus II編譯。比較建議的方式 阅读全文

posted @ 2012-04-03 11:36 tdyizhen1314 阅读(332) 评论(0) 推荐(0) 编辑

(转)如何使用ModelSim對Megafunction或LPM作仿真? (SOC) (MegaCore) (ModelSim)
摘要:Abstract在FPGA開發中,常會用到Altera所提供的Megafunction與LPM加速開發,這要如何使用ModelSim作仿真呢?Introduction使用環境:Quartus II 8.1 + ModelSim-Altera 6.3g_p1 + ModelSim SE 6.3e在(筆記) 如何使用ModelSim作前仿真與後仿真? (SOC) (Quartus II) (ModelSim)中,提到如何使用ModelSim對Verilog作仿真,包含前仿真與後仿真,若使用了Altera的Megafunction與LPM,則仿真的方法稍有不同,本文分別使用ModelSim-Alte 阅读全文

posted @ 2012-04-03 11:35 tdyizhen1314 阅读(293) 评论(0) 推荐(0) 编辑

(转)如何使用SignalTap II觀察reg與wire值? (SOC) (Verilog) (Quartus II) (SignalTap II)
摘要:Abstract撰寫Verilog時,雖然每個module都會先用ModelSim或Quartus II自帶的simulator仿真過,但真的將每個module合併時,一些不可預期的『run-time』問題可能才一一浮現,這時得靠SignalTap II來幫忙debug。Introduction使用環境:Quartus II 8.0 + DE2-70 (Cyclone II EP2C70F896C6N)實際使用SignalTap II時,會發現有些reg與wire可以觀察,有些又無法觀察,在(原創) 如何使用SignalTap II觀察reg值? (IC Design) (Quartus II 阅读全文

posted @ 2012-04-03 11:29 tdyizhen1314 阅读(222) 评论(0) 推荐(0) 编辑

(转)如何增加SignalTap II能觀察的reg與wire數量? (SOC) (Quartus II) (SignalTap II)
摘要:Abstract無法在SignalTap II觀察reg與wire,主要都是因為被Quartus II優化的關係,在Quartus II簡單的設定,就能增加SignalTap II能觀察的數量。Introduction使用環境:Quartus II 8.0在(原創) 如何使用SignalTap II觀察reg與wire值? (SOC) (Verilog) (Quartus II) (SignalTap II)中,我透過synthesis attribute強制指定Quartus II對某個reg與wire不加以優化,以方便SignalTap II觀察,雖然可行,但必須改code是其缺點,若能在 阅读全文

posted @ 2012-04-03 11:27 tdyizhen1314 阅读(246) 评论(0) 推荐(0) 编辑

(转)FPGA与CPLD的区别
摘要:FPGA与CPLD的区别 系统的比较,与大家共享: 尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点: ①CPLD更适合完成各种算法和组合逻辑,FP GA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。 ②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。 ③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FP G 阅读全文

posted @ 2010-08-20 18:37 tdyizhen1314 阅读(3488) 评论(2) 推荐(3) 编辑

(转)VHDL的延时理解
摘要:1。VHDL中的delta延时大于零,但小于任何指定的延时(指定的延时包括after指定的惯性延时和transport指定的传输延时)。因此,在一个确定的仿真时刻t,开启有限多个仿真周期(即一个delta延时)不会使仿真时刻向前推进,就是说不论有多少个delta延时,都认为是在t时刻。为什么能够这样认为呢,请看2。2。在具体硬件中,进程是并行发生的,也就是说,数据总是不断的流进各个模块,模块间不会有先来后到。因此在一个时刻t,会同时有多个事件发生。但是仿真软件是在PC机上用C语言之类的串行机制实现的,所以就必须在串行机制下尽可能准确地仿真并行事件的发生。怎么办呢,就出现了delta延时的模型。 阅读全文

posted @ 2010-06-11 17:49 tdyizhen1314 阅读(5704) 评论(0) 推荐(1) 编辑

导航