LEEE@FPGA
这个作者很懒,什么都没留下…
展开
-
Static Timing Analysis for Nanometer Designs A Practical Approach
分享电子书籍:静态时序分析圣经。原创 2023-07-03 15:43:12 · 308 阅读 · 0 评论 -
TSMC18
##$initials:Note!required.| .| .原创 2023-06-26 14:53:38 · 441 阅读 · 0 评论 -
数字IC IO PAD
1.首先,可以将PAD分为两类,一种是类似VDD/GND/CORNER之类的全局PAD,这种需要在综合之后手动添加到产生的网表中,一种是需要自己去在前端例化的PAD,如输出PAD_OUT,这些可以跟前段工程师进行讨论。5.在encounter时,需要注意的一点是,在import design的时候要顺便添加FAB 给提供的IO的lef库,之后的流程就基本与普通的综合无异了。3.所有关于PAD的结构,选择,适用类型,datasheet等内容,都可以在fab提供的doc文件中找到,此处不再赘述啦~原创 2023-06-07 15:45:03 · 2176 阅读 · 0 评论 -
DC Error: The power pin VDD on the cell UASA1/CG_X8_Rdsd2pcm is unconnected. (UPF-581)
【代码】DC Error: The power pin VDD on the cell UASA1/CG_X8_Rdsd2pcm is unconnected. (UPF-581)原创 2023-06-07 14:59:09 · 391 阅读 · 0 评论 -
Synopsys DC VER-1004
【代码】Synopsys DC VER-1004。原创 2023-05-30 21:04:51 · 204 阅读 · 0 评论 -
DC综合问题总结与修改
assign A=bus data reg[7:0],这样写 verilog 就会把 bus data reg[7:0]默认为一个无符号数,可是我们的 A 要求是一个有符号数,故就会出现上面列举的 warning,正确的写法应该是 wire signed 7:01A;signed 将一个数定义成有符号数同样当出现 signed to unsigned 这样的 warning后,我们用上面同样的方法进行分析就可以解决了。总的来说就是我们要给一个有符号数的信号赋值,那么我们就应该保证等号两边都是有符号数,原创 2023-05-29 15:07:08 · 1137 阅读 · 0 评论 -
Warning: PG netlist to UPF conversion is not done, as there is no UPF data. (UPF-440)
尝试了很多办法都不行,最好发现是IP的db参考文件有问题。3,使用library compiler 转换.db。2,删除里面所有和pg相关的内容(Vcc和gnd)1,首先找到原始IP 的.lib文件。直接退出compile。4,替换原来的.db。原创 2023-03-02 15:17:35 · 277 阅读 · 0 评论 -
(warning) PG net ‘%s‘ is driven by constant value ‘%s‘. DC does not support constant values o
分配vdd=1’b1;AND2 U1(.VDD(VDD),…AND2 U1(.VDD(VDD),…恒定的网络连接在一起,从而失去indi的预期连接性-相反,PG网络应该由顶级端口驱动。此限制的原因是DC RTL读取器可能合并。目前DC不允许源RTL中描述的PG网络。非法的恒定PG连接示例如下。原创 2023-03-01 17:46:36 · 178 阅读 · 0 评论 -
Warning: Cannot find the design ‘M31HDSP101KL110P_128X32X1CM4‘ in the library ‘WORK‘. (LBR-1)
命令重新分析设计单元,使用-library或-work选项。xxx为第三方的ip ,具体文件形式为.db。这只是一条警告信息。命令来确定库的内容。当指定的设计单位不在指定的库。原创 2023-03-01 17:15:06 · 870 阅读 · 0 评论 -
memory compiler软件使用教程
mmc。原创 2023-03-01 13:46:07 · 1209 阅读 · 1 评论 -
Library compiler使用教程
【代码】Library compiler使用教程。原创 2023-02-28 20:00:03 · 1344 阅读 · 0 评论 -
SYNOPSYS VCS Makefile学习
makefile 其实完全可以用csh或其他脚本来编写,只是VCS使用的linux内置的make命令定义了一个标准的仿真脚本,make命令是专门用来。这个Makefile是synopsys提供的模板,看上去非常好用,你只要按部就班提供实际项目的参数就可以了。做项目的源文件管理和编译控制的命令。这篇文章重点看synpsys的标准仿真脚本都做了哪些操作,然后使用其他脚本来实现。写的一点东西,有些地方是猜测的或者不准确。原创 2022-11-09 11:23:39 · 1069 阅读 · 1 评论 -
Synopsys DC综合流程&常用命令
Design Compiler使用technology libraries, synthetic or DesignWare libraries, and symbol libraries执行综合过程,并展示综合结果。将HDL翻译为门级描述之后,Design Compiler优化和映射设计到指定的工艺库。将HDL描述的设计输入到Design Compiler中。优化之后准备测试综合结果,查看是否满足设计要求。综合之后准备布局布线。原创 2022-10-19 18:02:15 · 904 阅读 · 0 评论 -
Synopsys逻辑工艺库(DC综合)
逻辑库包括仅与综合过程有关的信息且通过DC用于设计的综合和优化。这一信息包括引脚到引脚的时序、面积、引脚类型和功耗以及其他DC需要的必须数据。逻辑库是一个文本(通常扩展名".lib"),通过使用Library Compiler(LC)编译生成带有扩展名名".db"的二进制文件。以SMIC的逻辑综合库为例:库文件下载地址。原创 2022-10-19 17:57:08 · 1635 阅读 · 0 评论 -
Physical Design Flow
设计流的物理设计阶段也称为“placeandroute”阶段。这是基于物理放置电路的想法,该电路形成逻辑门并代表特定的设计,以便可以制造电路。典型的物理设计流程始于决定设计的floorplan,标准单元格的放置,为时钟信号创建时钟树,routing时钟和信号网。...原创 2022-07-19 14:46:29 · 357 阅读 · 0 评论 -
什么是时钟树综合?
时钟树z综合(CTS)是沿ASIC设计的时钟路径插入buffers/inverters的过程,以平衡时钟延迟到所有时钟输入。因此,为了平衡skew并最小化插入延迟CTS。如下图1所示,在CTS之前,所有时钟引脚均由单个时钟源驱动。在这里,我们正在讨论CTS概述。CTS之前和CTS之后的清单是什么?CTS的输入和输出是什么?CTS如何影响设计。...原创 2022-07-19 11:26:04 · 654 阅读 · 0 评论 -
vcs+verdi 实现七夕小心心
2 TB文件3操作步骤4 Verdi查看波形原创 2022-07-07 17:22:34 · 191 阅读 · 0 评论 -
Synopsys DC约束语法检查和报告查看
1约束语法检测dcprocheck TOP.con2 Verify port constraints (non-clock)report_port -verbose3 Verify clock constraintsreport_clock -- clock waveformreport_clock –skew -- clocktree specscheck_timing1)时间预算缺少端点约束2)丢失、重叠或多个时钟3)可能干扰时钟的时钟选通信号...原创 2022-05-16 16:23:37 · 723 阅读 · 0 评论 -
Synopsys 时序约束,时序概念
1什么是虚拟时钟(Virtual Clock)?1)一种时钟,未连接到内部的任何端口或引脚当前的设计2)作为输入或输出延迟的参考3)使用用户指定的名称创建时钟对象在设计编译器的内存中组合逻辑设计2 时间预算(Time Budgeting)3寄存器输出(Registered Outputs)...原创 2022-05-16 15:37:51 · 194 阅读 · 0 评论 -
Synopsys DC学习(1)
1设计对象2相同名字的多个对象3 使用 get_‘*’*:匹配多个字符?:匹配一个字符all_*练习与collection 相关命令原创 2022-05-11 10:23:12 · 279 阅读 · 0 评论 -
数字电路基础&时序基础(3)
1 流水线设计2时钟树综合 Clock Tree Synthesislatency:时钟源到每个寄存器的延时skew:时钟原到不同寄存器的时间差值buffer类型不同。驱动能力不同。Cell 延时PVT特性ss0p765v0c:ss :slow 0p765v 0.765v0c:0cwire延时金属线越宽延时越小,越长延时越大。验证有两种:1,功能2,时序...原创 2022-05-10 16:32:38 · 181 阅读 · 0 评论 -
数字电路基础&时序基础(2)
1建立时间与保持时间建立时间和保持时间由工艺库决定。1 建立时间时序抽象。数据流:D1-Q1-COMB-D2DFF1寄存器内部延时:Tck组合逻辑延时:TcombCLK2:TX1>setup–如果小于,出现亚稳态,即不确定值。...原创 2022-05-09 14:51:36 · 309 阅读 · 0 评论 -
数字IC设计流程&数字电路基础(1)
1组合电路由各种逻辑门组成电平敏感输入变输出立刻变不能存储阻塞赋值assign a=b;always @(*) a=b;2时序电路触发器DFF时钟有效沿触发可以存储非阻塞赋值输入变,输出在时钟有效沿来时才变化always @(posedge clk) a<=b;锁存器特性:电平敏感但又能存储的时序器件与触发器功能一样,面积小。缺点:因为电平触发,对毛刺敏感静态时序分析非常复杂因为一般的ASIC设计不推荐使用Latch...原创 2022-05-07 14:10:54 · 488 阅读 · 0 评论 -
Synopsys系列工具的基本概念
1 Synopsys 系列工具包含1)Library Compiler2)Design Compiler和Design Vision3)Physical Compiler4)PrimeTime5)DFT Compiler6)Formality2 Library Compiler任何ASIC设计的核心都包含一组逻辑单元的工艺库,库可以包含每个单元的功能描述、时序、面积及其他相关信息。在转换为可被Synopsys应用程序使用的格式前,Library Compiler(LC)会分析文本原创 2022-05-06 14:47:49 · 2436 阅读 · 0 评论 -
VCS仿真学习(7)Debugging with $vcdplustraceon Task
以lab5 B为实验vcs –f adder.f –R***ERROR at time = 50 ***a = 00, b = 00, sum = xx; cin = 0, cout =0***ERROR at time = 150 ***a = 00, b = 01, sum = 00; cin = 0, cout =0… … vcs –f adder.f –R +racemore race.out0 "sum_0": read addertb.u1 (adder.原创 2022-04-24 10:25:53 · 244 阅读 · 1 评论 -
VCS仿真学习(6)Debugging simulation mismatches
完成本实验后,您应该能够:• 在现有 Verilog 设计中使用 VCS 中的竞态检查器实用程序定位竞态条件• 找出现有 Verilog 设计中的仿真不匹配继续使用adder在实验室文件中,存在由竞争条件引起的错误。 目标是使用 VCS 来识别和定位竞争条件的原因。 一旦更正,您将重新编译和重新仿真以验证我们更正的功能。这是您将要执行的操作的预览:• 在 A 部分中,您将编译和仿真以查看加法器是否正确运行。 然后,我们将使用 +race 编译时开关并重新编译和重新仿真加法器。 通过检查race原创 2022-04-24 10:11:55 · 345 阅读 · 0 评论 -
VCS仿真学习(5)Debugging with DVE
1实验所需文件fifo.v// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// CDANOTE Verilog Synchronous FIFO // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~module fifo (clk, rstp, src_in, dst_in, data_in, writep, readp, s原创 2022-04-21 14:08:41 · 510 阅读 · 0 评论 -
VCS仿真学习(4) UCLI Debugger
1VCS Debugging with VCS UCLI Debugger在第A部分中,您可能已经注意到,通过使用Verilog系统任务调用插入进行调试需要大量的工作。您不断地执行完整的修改-编译-仿真-验证循环。不仅数据输入很耗时,这个调试循环中的其他步骤也很耗时。在B部分中,我们将使用UCLI命令集来简化调试过程。在A部分,你需要用笔和纸来帮助你诊断问题。UCLI简化了,但没有消除对笔和纸的需要。进入lab2 B部分目录。vcs –f adder.f –R***ERROR at time =原创 2022-04-20 15:29:54 · 1504 阅读 · 0 评论 -
VCS仿真学习(3)-Debugging Basics
1 学习要点1)使用Verilog系统任务调用调试现有的Verilog设计。2)使用VCS UCLI特性调试现有的Verilog设计8-bit Carry Select Adder Block Diagram我们在实验文件中嵌入了错误。我们的目标是使用课堂上介绍的调试技术来定位和修复错误。您将看到的框图是Verilog代码想要实现的。这个实验室分为两部分。每个部分都有自己的关联任务。这里有一个预览:•编译和仿真加法器,注意错误是什么。•在A部分,你将把Verilog系统任务调用插入到设计文原创 2022-04-20 11:12:34 · 239 阅读 · 0 评论 -
【VCS仿真学习(2) Working with Library Directories】
VCS仿真学习(2) Working with Library Directories在实验1的B部分,我们已经移动了 fa.v和add4.v进入库目录。新的文件目录结构现在看起来如下所示fa.v和add4.v 在lib文件夹重新编译设计。只是,这次我们需要引用库目录文件。将使用-R开关作为一种简写,以便在编译后立即执行仿真。vcs addertb.v add8.v –y ../../lib +libext+.v -Rlab1/B$ vcs addertb.v add8.v -y ../..原创 2022-04-19 17:41:14 · 377 阅读 · 0 评论 -
VCS仿真基础(1)
1 学习目标1)使用VCS编译现有的Verilog设计,生成一个VCS仿真可执行文件2)通过执行由VCS生成的仿真二进制可执行文件来仿真Verilog设计的操作3)通过读取Verilog源代码中由Verilog系统任务调用生成的控制台消息来确定Verilog设计是否通过验证2 8-bit Carry Select Adder Block Diagram目标是使用这个简单的设计了解两步VCS仿真过程的基本原理。这个实验室分为三个部分。每个部分都有自己的关联任务。下面是将要做的事情的预览:1)编译原创 2022-04-19 17:26:05 · 982 阅读 · 0 评论 -
VCS仿真 Failed to obtain license...
Failed to obtain license…lmg_vcs如图:原创 2022-04-19 11:05:05 · 2906 阅读 · 5 评论 -
IC器件学习(1)二极管
1二极管二极管是一种双端子电子元件,主要在一个方向上导电。它的一端具有高电阻,另一端具有低电阻。在本文中,让我们详细了解什么是二极管和二极管符号。2什么是二极管?二极管用于通过限制电压来保护电路,并将交流电转换为直流电。硅和锗等半导体用于充分利用二极管。即使它们以单一方向传输电流,它们传输的方式也不同。有不同种类的二极管,每一种都有自己的应用。二极管符号:标准二极管符号表示如上。在上图中,我们可以看到有两个端子被称为阳极和阴极。箭头是阳极,表示正向偏置条件下常规电流流动的方向。另一端是阴极。3原创 2021-12-14 17:48:27 · 2501 阅读 · 0 评论 -
Synopsys DC学习(3) tcl文件启动
tcl脚本如下:read_verilog light.vcurrent_design lightif {[link] == 0} { echo "Linking Error" exit; #Exits DC if a serious linking problem is encountered}if {[check_design] ==0} { echo "Check design Error" exit;# Exits DC if a check-design error原创 2021-09-22 16:08:53 · 408 阅读 · 0 评论 -
Synopsys DC学习--(1)
1启动DC1)交互式GUI:design_vision2)DC Shell(不启动gui) :dc_shell-t2启动文件 .synopsys_dc.setup# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Library Setup# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -原创 2021-09-22 15:47:51 · 611 阅读 · 0 评论 -
lmgrd遇到lmgrd: No such file or directory
在ubuntu 16.04 上遇到lmgrd: No such file or directory原因缺少依赖包。解决:sudo apt-get install lsb-coreReading package lists... DoneBuilding dependency tree Reading state information... DoneThe following packages were automatically installed and are no lo原创 2021-09-22 15:07:10 · 2255 阅读 · 0 评论 -
数字 VLSI 的设计注意事项
VLSI SoC 中的设计程序非常复杂。 设计人员应该考虑所有可能的状态和输入,并以这样一种方式设计芯片,使其每次都能在每种状态和每种可能的输入下工作。 在本文中,我们将讨论设计数字 VLSI 电路时的亚稳态、建立时间和保持时间。1 关键路径、吞吐量和延迟关键路径是电路中最长的路径,限制了时钟速度。 在描述数字电路时,还有两个重要因素:延迟和吞吐量。 延迟是输入变化产生输出变化所需的时间; 延迟可以表示为时间长度,或者,在同步电路中,表示为一定数量的时钟周期。 吞吐量是指可以处理数据的速率。2 触发器原创 2021-09-13 16:49:42 · 250 阅读 · 0 评论 -
Synopsys DC学习(2)--.synopsys_dc.setup
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# Library Setup# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -set search_path "$search_path ../ref/db ./scripts ./rtl"set target_library原创 2021-09-10 12:07:46 · 528 阅读 · 0 评论 -
什么是低功耗设计
低功耗设计是一系列旨在降低集成电路 (IC) 整体动态和静态功耗的技术和方法。从图 1 中的等式所示的单个电源组件来看,低功耗设计的目标是尽可能减少单个电源组件,从而降低整体功耗。功率方程包含动态和静态功率的分量。动态功率由开关功率和短路功率组成;而静态功率由泄漏或在没有活动时流过晶体管的电流组成。每个功率元件的值与以下任一因素有关:活动频率过渡时间容性负载电压漏电流峰值电流例如,电压越高,每个组件消耗的功率就越大,从而导致整体功率越高。相反,电压越低,总功率越低。为了以最低的功耗实现最佳原创 2021-09-07 18:40:01 · 1990 阅读 · 0 评论 -
CMOS 图像传感器简介
图像传感器是数字成像系统的主要构建块之一,对整个系统性能有很大影响。 两种主要类型的图像传感器是电荷耦合器件 (CCD) 和 CMOS 成像器。 在本文中,我们将了解 CMOS 图像传感器的基础知识。查看我们关于电荷耦合器件 (CCD) 图像传感器的系列。 您可以从 CCD 的结构和功能开始。1 CMOS 光电探测器大多数 CMOS 光电探测器都基于 PN 结光电二极管的操作。 当光电二极管反向偏置(且反向电压小于雪崩击穿电压)时,与入射光强度成正比的电流分量将流过二极管。 该电流分量通常称为光电流。原创 2021-09-06 11:42:37 · 993 阅读 · 0 评论