自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

转载 DC set_cost_priority -delay

set_cost_priority -delay

2022-06-29 14:47:14 616

转载 DC学习综合与优化

一:综合策略 top-down & bottom-up1:top-down  层次化结构,只对顶层设计进行全面约束,针对个别模块有特殊约束;比如管理模块(clock模块,reset模块等)的综合不会与工作模块(顶层模块)放在一起综合的。2:bottom-up  对底层的各个模块定为current_design,进行综合,加上dont touch属性;若各层之间有group logic(如与门),还需要对group logic约束;这种风格的综合约束复杂且多。所有top-dowm方式用得更多3:综合里的关键字

2022-06-28 18:08:03 4134 1

原创 虚接口的两种传递方式

虚接口的使用

2022-06-11 16:35:59 1146

转载 DDR功能点 ODT ZQ校准

ODT 也是 DDR2 相对于 DDR1 的关键技术突破,所谓的终结(端接),就是让信号被电路的终端吸收掉,而不会在电路上形成反射, 造成对后面信号的影响。 顾名思义, ODT 就是将端接电阻移植到了芯片内部,主板上不再有端接电路。在进入DDR 时代, DDR 内存对工作环境提出更高的要求,如果先前发出的信号不能被电路终端完全吸收掉而在电路上形成反射现象, 就会对后面信号的影响造成运算出错。因此目前支持DDR主板都是通过采用终结电阻来解决这个问题。 由于每根数据线至少需要一个终结电阻, 这意味着每块DDR

2022-03-25 13:54:37 3967

转载 DDR4的刷新

Refresh,刷新是 DRAM 的一项重要特性,又被称为动态刷新(Dynamic refresh),而 Dynamic 就是 DRAM 中的 'D' 所代表的意思。DRAM 刷新与其结构息息相关。本系列连载于 OpenIC SIG,除了 DDR 学习时间专栏外,OICSIG 目前正在陆续上线 HDLBits 中文导学的优化版本,欢迎关注/支持/加入我们DDR 学习时间 - OpenIC SIG 开源数字IC技术分享在 DDR 学习时间专栏中,目前有两个 Part:Part-A DRAM 课

2021-12-03 15:05:36 5755 2

转载 DDR4 - Initialization, Training and Calibration

引言 Introduction当一个拥有 DRAM 子系统的设备启动时,有几件事需要在 DRAM 进入工作状态之前完成。下图是来自 JEDEC specification (DDR4 标准,https://www.jedec.org/standards-documents/docs/jesd79-4a)的状态机,展示出上电之后 DRAM 经历的几个状态。图-1 DDR4 初始化状态机实质上,完整的初始化过程(Initialization)包括以下 4 个单独的步骤:上电与初始化 ,P..

2021-08-06 23:40:15 7551 3

转载 Linux shell中2>&1的含义解释

A.首先了解下1和2在Linux中代表什么在Linux系统中0 1 2是一个文件描述符从上表看的出来,我们平时使用的echo "hello" > t.log1其实也可以写成echo "hello" 1> t.log1B.关于2>&1的含义(关于输入/输出重定向本文就不细说了,不懂的可以参考这里,主要是要了解> < << >> <& >& 这6个符号的使用)含义:将标准错误输出重定向到标准.

2021-03-30 19:13:44 136

转载 Verdi使用简介及Dump波形命令

Makefile加载verdi波形方法1.编译参数增加verdi的PLI,使用32位编译的去掉64。DUT_CMP_OPTIONS_WAVE += -P ${VERDI_HOME}/share/PLI/vcs/LINUX64/fsdb_vcs.tab ${VERDI_HOME}/share/PLI/vcs/LINUX64/fsdb_vcs.a2.仿真运行参数指定波形文件存放路径和文件名。DUT_SIM_OPTIONS_WAVE += +fsdbfile+$(WAVE_DIR..

2021-02-03 08:40:40 16083

转载 瞬间打开Verdi

VCS和Verdi是一对好基友,二者相生相伴N多年。VCS为编译仿真工具,Verdi则为查看Waveform的工具,就这样愉快的Cowork着。VCS和Verdi能正常工作的前提是,必须存在filelist(list出了所有用到的RTL),VCS​对该filelist中的file进行编译,然后再进行仿真,顺带生成波形文件(xxx.fsdb)供Verdi打开,看到这里Verdi貌似只需要fsdb就能工作,如果是这样的话Verdi又怎么能知道filelist中多个module的层次关系(Hierarchy)

2021-02-02 10:48:51 2326 1

转载 glWindowPos2i

glWindowPos2iproblem#ifdef _MSC_VER #include #include #else #ifdef __APPLE__ #include #else #include #endif#endifvoid glWindowPos4f(float x,float y,float z,float w){ /..

2021-01-05 15:23:44 305

转载 glCopyPixels的用法和举例,涉及glPixelZoom、glRasterPos2i

glCopyPixels的用法和举例 从效果上看,glCopyPixels进行像素复制的操作,等价于把像素读取到内存,再从内存绘制到另一个区域,因此可以通过glReadPixels和glDrawPixels组合来实现复制像素的功能。然而我们知道,像素数据通常数据量很大,例如一幅1024*768的图象,如果使用24位BGR方式表示,则需要至少1024*768*3字节,即2.25兆字节。这么多的数据要进行一次读操作和一次写操作,并且因为在glReadPixels和glDrawPixels中设置的数据...

2021-01-05 15:06:09 761

原创 FPGA/IC基础知识

1、简述建立时间和保持时间 建立时间Tsu(setup):触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间。 保持时间Th(hold):触发器在时钟上升沿到来之后,其数据输入端的数据必须保持不变的最小时间。关于上升沿触发器如何需要建立时间和保持时间的详细解释:https://www.cnblogs.com/ylsm-kb/p/9129699.html2、简述触发器和锁存器之间的差别 锁存器对电平信号敏感,在输入脉冲的电平作用下改变状态。...

2020-12-29 20:46:46 3867

转载 Verilog实现之任意分频电路

一、行波时钟  任意分频电路,相信很多人都听说过这个专业名词,好多视频上都说不建议使用计数器产生的分频时钟。其实在FPGA领域当中,由寄存器分频产生的时钟还有一个学名叫做,行波时钟。是由时序逻辑产生比如A寄存器的输出作为B寄存的时钟输入(一般不建议使用),如下图所示;驱动右边那个触发器的时钟即为行波时钟。之所以不建议使用在FPGA中使用行波时钟,因为这样会在FPGA设计中引入新的时钟域,,增加时序分析的难度,并且由于行波时钟的相位通常会滞后于原始时钟,会导致后续触发器的保持时间不一定能满足。.

2020-12-29 18:54:21 2775

转载 OpenGL学习

**绘制模式**在绘制多边形时除了默认的填充方式,还可以使用点和线使用glPolygonMode函数来设置模式三种不同模式下的绘图GL_FILLGL_LINEGL_POINT多边形的两面如果以顺时针绘制则是反面,逆时针绘制则是正面显示效果如下:切换正反面可以使用glFrontFace函数来调换正面与反面的概念glFrontFace(GL_CCW); // 设置CCW方向为“正面”,CCW即CounterClockWise,逆时针glFrontFace(GL_CW)

2020-12-18 09:00:24 296

转载 SPI总线的原理与Verilog实现

一、 软件平台与硬件平台  软件平台:    1、操作系统:Windows-8.1    2、开发套件:ISE14.7    3、仿真工具:ModelSim-10.4-SE  硬件平台:    1、 FPGA型号:Xilinx公司的XC6SLX45-2CSG324    2、 Flash型号:WinBond公司的W25Q128BV Qual SPI Flash存储器二、 原理介绍  SPI(Serial Peripheral Interface,串行外围设备接口),是..

2020-10-31 12:26:58 2590 1

原创 set_multicycle_path

set_multicycle_path的语法:缺省情况下:setup path对应的计算起点是目的时钟,向前(从左到右)移动,可以用-start改称源时钟。----- 对应的:hold path对应的计算起点是源时钟,向后(从右到左),可以用-end改成目的时钟。在同一时钟域下,选择-end和-start没有啥作用。约束前约束后:setup check第二个capture沿,hold check自动移到第一个capture沿。默认情况下hold自动在setup的前一个周期。设置命令

2020-09-27 14:57:44 7856 1

转载 VIVADO之读懂用好 Timing Report

【Vivado使用误区与进阶】读懂用好 Timing ReportXDC约束技巧》系列中讨论了XDC约束的设置方法、约束思路和一些容易混淆的地方。我们提到过约束是为了设计服务,写入Vivado中的XDC实际上就是用户设定的目标,Vivado对FPGA设计的实现过程必须以满足XDC中的约束为目标来进行。那么我们如何验证实现后的设计有没有满足时序要求,又如何在开始布局布线前判断某些约束有没有成功设置,或是验证约束的优先级,这些都需要用到Vivado中的静态时序分析工具。静态时序分析静态时序分析( Sta

2020-09-14 17:15:22 9722

转载 【Vivado使用误区与进阶】XDC约束技巧之时钟篇

【Vivado使用误区与进阶】XDC约束技巧之时钟篇Xilinx 的新一代设计套件Vivado中引入了全新的约束文件XDC,在很多规则和技巧上都跟上一代产品ISE中支持的UCF大不相同,给使用者带来许多额外挑战。Xilinx工具专家告诉你,其实用好XDC很容易,只需掌握几点核心技巧,并且时刻牢记:XDC的语法其实就是Tcl语言。XDC的优势:XDC是Xilinx Design Constraints的简写,但其基础语法来源于业界统一的约束规范SDC(最早由Synopsys公司提出,故名Synopsys

2020-09-14 14:06:25 3561

转载 vivado中常用的时序约束命令

目录一、vivado中cell port net 和pin之间的关系 二、基本的命令 get_* 三、时序分析中常用的约束命令一、vivado中cell port net 和pin之间的关系cell一般指我们在代码中实例化的模块,也可以是我们综合后可以看到的LUT、block RAM 、DSP、MMCM以及PLL等。 pin每个cell都有相应的pin,也即模块的输入输出信号,并非芯片的引脚。 net即pin与pin之间的连线 port我们在顶层文件中声明的输入输出信号...

2020-08-20 10:13:43 6193

原创 地址转换的示例

1、这里是按字节寻址,每个地址对应一个字节,所以这里的rd_mis_addr一个地址对应的是256b,而rd_pca_addr[4:2],每个地址对应的是32b,一次读出来1个256b的就等于8个32b的。正好用地址[4:2]去分配。对于递增的地址000000、000100、001000、001100直到011100在rd_mis_addr上都是0。在000000时取出256b的数,后面将其通过rd_pca_addr[4:2]分配给后面的地址。2、通过复制高位的地址,将低位地址对应数据的变化更新到高

2020-05-25 15:39:02 935

包含DC资料、TCL脚本和时序相关

包含DC资料、TCL脚本和时序相关

2023-08-22

SystemVerilog验证资料及笔记整理

SystemVerilog验证资料及笔记整理

2023-06-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除