![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ChipDesign
文章平均质量分 91
Focus On FrontEnd of Chips
ChipArtist
To be a ChipArtist~~
展开
-
(数字IC)低功耗设计入门(三)——系统与架构级低功耗设计+Comments
ZZhttps://www.cnblogs.com/IClearner/p/6903204.html 前面讲解了使用EDA工具(主要是power compiler)进行功耗分析的流程,这里我们将介绍在数字IC中进行低功耗设计的方法,同时也结合EDA工具(主要是Design Compiler)如何实现。我们的讲解的低功耗设计主要是自顶向下的设计,也就是说,我们首先介绍在系统架构层面上如何进行低功耗设计(或者可以从哪些方面进行低功耗设计);然后我们在RTL层面和门级层面上介绍低功耗设计的方法,这两个种方法原创 2021-10-25 16:51:18 · 840 阅读 · 0 评论 -
STA: CPPR and OVC + Comments
ZZ from 驴子大神后附commentsS CRPR clock reconvergence pessimism removalC CPPR clock path pessimism removal剔除公共clock path上的悲观度。看图说话,上图是最常见最基本的一条timing path: 有launch clock path, data path 跟 capture clock path; 大多数电路中的大多数timing path 的launch clock原创 2021-10-25 16:25:58 · 828 阅读 · 0 评论 -
(数字IC)低功耗设计入门(二)——功耗的分析+Comments
前面学习了进行低功耗的目的个功耗的构成,今天就来分享一下功耗的分析。由于是面向数字IC前端设计的学习,所以这里的功耗分析是基于DC中的power compiler工具;更精确的功耗分析可以采用PT,关于PT的功耗分析可以查阅其他资料,这里不涉及使用PT的进行功耗分析。 (1)功耗分析与流程概述 上一个小节中讲解了功耗的构成,并且结合工艺库进行简要地介绍了功耗的计算。但是实际上,我们根本不可能人工地计算实际的大规模集成电路的功耗,我们往往借助EDA工具帮我们分析电路的功耗。这里我们就介绍一下ED.原创 2021-10-23 17:07:30 · 8857 阅读 · 0 评论 -
(数字IC)低功耗设计入门(一)——低功耗设计目的与功耗的类型+Comments
ZZhttps://www.cnblogs.com/IClearner/p/6893645.html 来看看这个专题的主要内容: ·低功耗设计的目的 ·功耗的构成/类型 ·功耗分析与流程——使用EDA工具 ·低功耗设计与优化 一、低功耗设计的目的1.便携性设备等需求 电子产品在我们生活中扮演了极其重要的作用,便携性的电子设备便是其中一种。便携性设备需要电池供电、需要消耗电池的能量。在同等电能提供下,低功耗设计的产品就能够工作更长的时间。时间的就是生命,因此低功耗设计是原创 2021-10-23 16:08:03 · 1423 阅读 · 1 评论 -
Simulation Skills 1: VerilogHDL常用的仿真知识 + Comments
在描述完电路之后,我们需要进行对代码进行验证,主要是进行功能验证。现在验证大多是基于UVM平台写的systemverilog,然而我并不会sv,不过我会使用verilog进行简单的验证,其实也就是所谓的仿真。这里就来记录一下一些验证的基础吧。一、验证基础与仿真原理 ①综合中的语法,都适用于仿真,在仿真中,Verilog语句是串行的,其面向硬件的并行特性则是通过其语义(语言含义)来实现的,因此并不会丢失代码的并行含义和特征。 ②仿真的关键元素有:仿真时间、事件驱动、队列、调度等。 ③仿真时.原创 2021-09-01 20:19:26 · 2102 阅读 · 0 评论 -
DC15:Verilog HDL常用综合语法 (十五)+ Comments
前面已经记录了一些组成Verilog的基本组成,可以用这些基本组成来构成表达式。这一节,就来记录一下把这些表达式构成一个文件的各种行为描述语句。 ①这里用Verilog基本要素进行的行为描述主要是针对综合来的,也就是可以设计出实际电路来的(行为描述语句有两大子集,一个是面向综合,一个是面向仿真)。②行为描述语句一般指放在always语句中。内容提纲如下所示: ·触发事件控制 ·条件语句(if与case语句) ·循环语句 ·任务和函数 ·编译预处理 一、触发事件控制 .原创 2021-08-18 14:53:51 · 429 阅读 · 0 评论 -
Coding skill 4:从计数器到分频电路(完结)+Comments
本文介绍常见的电路——计数器,然后我们由计数器电路讲解到分频电路。一、计数器 (1)计数器代码 计数器,顾名思义就是在时钟的节拍下进行计数,一个简单的N位计数器的代码如下所示,这个计数器从0计数到2^N - 1(共计数了2^N个数,也就是N位计数器): 1 module count#(parameter N=8)( 2 input clk, 3 input clear, 4 output[N-1:0] cnt_Q 5 ); 6 reg[N-1:0] cnt; 7 assign.原创 2021-08-17 14:46:06 · 257 阅读 · 0 评论 -
DC14:代码综合后的电路对比 (十四)+ Comments
这里来记录一下相似代码之间的不同差异,比如同步复位与异步复位触发器的对比,上升沿复位和下降沿复位的对比等等。这里主要使用ISE的综合引擎。直接附上代码和综合后电路图,有些会有部分讲解。 一、异步复位与同步复位 我在复位电路里面讲解了同步复位和异步复位的区别,这里就不详细介绍了,链接如下:http://www.cnblogs.com/IClearner/p/6683100.html (1)异步复位异步复位的代码如下所示:module DFF1( .原创 2021-08-09 14:56:54 · 680 阅读 · 1 评论 -
Coding skill 3: 复位电路+Comments
时钟电路我第一篇博客已经说讲过了,今天我们来聊聊复位电路。当然,复位电路博大精深,并不是三言两语就能说清楚的,因此这里也是聊聊复位电路的基础,更深的研究需要在实际的项目中才能深有体会。本文的主要内容有: ·复位电路概述 ·同步复位电路 ·异步复位电路 ·复位策略——复位网络1.复位电路概述 复位信号在数字电路里面的重要性仅次于时钟信号。对电路的复位往往是指对触发器的复位,也就是说电路的复位中的这个“电路”,往往是指触发器,这是需要注意的。有的电路需要复位信号,就像.原创 2021-08-09 14:46:26 · 229 阅读 · 0 评论 -
Coding skill 2: 易错易望点 +Comments
本文记录一些关于Verilog HDL的一些技巧、易错、易忘点等(主要是语法上),一方面是方便自己忘记语法时进行查阅翻看,另一方面是分享给大家,如果有错的话,希望大家能够评论指出。关键词: ·技巧篇: 组合逻辑输出类型选择; 语法上的变量交换; ·易忘篇: case/casex/casez语句; 循环语句; 数制和操作符; 数据类型; ·易错: 数据的截位与扩位 .原创 2021-07-29 15:28:01 · 265 阅读 · 0 评论 -
Coding skill 1: 边沿检测 +Comments
本文记录一下关于延迟触发器链与它的常用用法(即边沿检测。多级延迟的触发器应该是比较常用的,当我们需要对信号信号进行延时,这个时候我们就用到了延迟触发器链。下面就来记录一下吧。 一、多级延迟触发器(或延迟触发器链) (1)多级延迟触发器电路 多级延迟触发器,顾明思议就是多个触发器串在一起,对信号进行打拍,一个触发器就延时了一拍,也就是延迟了一个时钟周期。多级触发器的代码如下所示: 1 module DFF_N #(parameter N=3)( 2 input clk, 3 .原创 2021-07-29 15:00:48 · 288 阅读 · 0 评论 -
Logic knowledge 1: 数制和码制+Comments
数字电路是数字IC设计的基础,而数制和码制往往又是数字电路的基础,因此数制和码制是数字IC设计基础的基础。在这里,我将记录关于数制与码制的一些主要知识点,有些知识点我是学了数电半年或者一年之后才发现,原来数电还有这样子的东西,于是整理在这里,仅供参考,有误请评论指出。一、数制 这里不进行记录什么二进制、十进制之类的基本概念,只介绍一些主要的知识点。 1、数制之间的转换(1)关于二进制的一些概念 这里主要记录一下位、比特对于二进制的描述,是比较基础的东西。 位宽/比特:一个二进制数,.原创 2021-07-20 15:15:20 · 291 阅读 · 0 评论 -
DC13:Tcl与Design Compiler (十三)——Design Compliler中常用到的命令(示例)总结+comments
本文如果有错,欢迎留言更正;此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner本文将描述在Design Compliler中常用到的命令,这些命令按照流程的顺序进行嵌套讲解,主要是列举例子;大概的讲解布局如下所示: 大概有11个部分,下面我们逐个部分进行(简单的)介绍的举例。1、tcl的命令和结构tcl的命令和结构请参照第二节的内容:http://www.cnb.原创 2021-07-20 12:31:13 · 13112 阅读 · 0 评论 -
DC12:Tcl与Design Compiler (十二)——综合后处理+Comments
本文如果有错,欢迎留言更正;此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner概述 前面也讲了一些综合后的需要进行的一些工作,这里就集中讲一下DC完成综合了,产生了一些文件,我们就要查看它生成的网表和信息,下面就来介绍DC综合完成之后要进行哪些工作: 也就是说,DC一般完成综合后,主要生成.ddc、.def、.v和.sdc格式的文件(当然还有各种报告.原创 2021-07-20 12:08:56 · 1528 阅读 · 0 评论 -
DC11:Tcl与Design Compiler (十一)——其他的时序约束选项(二)+Comments
本文如果有错,欢迎留言更正;此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner前面介绍的设计都不算很复杂,都是使用时钟的默认行为作为电路的约束,都存在有路径给你约束,即信号的变化要在一个时钟周期内完成,并达到稳定值,以满足寄存器的建立和保持的要求。此外进行可测性设计(design for test)时,为了提高测试的覆盖率,我们经常使用多路(multiplex,简称mux)传输电路的控制时钟,使电路的时钟信号可以由.原创 2021-07-19 21:00:25 · 1385 阅读 · 0 评论 -
DC10:Tcl与Design Compiler (十)——其他的时序约束选项(一)+ Comments
本文如果有错,欢迎留言更正;此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 之前讲了基本的时序路径约束,现在我们来看一下其他的约束,然后通过实战来讲解一些其他的约束。实战中也没有前面的“理论”中的约束类型,但是可以通过实战来了解其他的约束。本文的具体内容是: ·多时钟同步约束 ·门控时钟的约束 (实战:) ·正负边沿触发器的约束 ·输入输出延时的非默认约束 ·输.原创 2021-07-19 20:42:32 · 737 阅读 · 0 评论 -
DC8:Tcl与Design Compiler (八)——DC的逻辑综合与优化+Comments
本文如果有错,欢迎留言更正;此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 对进行时序路径、工作环境、设计规则等进行约束完成之后,DC就可以进行综合、优化时序了,DC的优化步骤将在下面进行讲解。然而,当普通模式下不能进行优化的,就需要我们进行编写脚本来改进DC的优化来达到时序要求。理论部分以逻辑综合为主,不涉及物理库信息。在实战部分,我们将在DC的拓扑模式下进行。(本文主要参考虞希清的《专用集成电路设计实用教.原创 2021-07-19 20:16:24 · 1613 阅读 · 0 评论 -
DC7:Tcl与Design Compiler (七)——环境、设计规则和面积约束+Comments
本文如果有错,欢迎留言更正;此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner本文的主要内容是讲解(约束针对的是逻辑综合下的约束,而实战部分则是在DC的拓扑模式下进行): ·环境属性的约束 ·设计规则的约束 ·面积的约束 ·实战(部分)环境属性的约束1、工作环境属性约束 输入/输出端口及其驱动属性是设计规格的一部分,工作环境的约束,是对这个规格约束的一部分。 工作环境约束一.原创 2021-07-14 00:01:15 · 2034 阅读 · 0 评论 -
DC6: Tcl与Design Compiler (六)——基本的时序路径约束+Comments
本文如果有错,欢迎留言更正;此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 时序约束可以很复杂,这里我们先介绍基本的时序路径约束,复杂的时序约束我们将在后面进行介绍。在本节的主要内容如下所示: ·时序路径和关键路径的介绍 ·建立时间、保持时间简述 ·时钟的约束(寄存器-寄存器之间的路径约束) ·输入延时的约束 ·输出延时的约束 ·组合逻辑的约束 ·.原创 2021-07-13 23:03:24 · 709 阅读 · 0 评论 -
DC5:Tcl与Design Compiler (五)——综合库(时序库)和DC的设计对象+Comments
本文如果有错,欢迎留言更正;此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 前面一直说到综合库/工艺库这些东西,现在就来讲讲讲综合库里面有什么东西,同时也讲讲synopsys的Design Ware库。主要内容分为三个部分:标准单元库、DC的设计对象、Design Ware库。(1)标准单元库 绝大多数的数字设计流程都是基于标准单元的半定制设计流程。标准单元库包含了反相器、缓冲、与非、或非、与或非、锁存.原创 2021-07-11 16:39:20 · 2148 阅读 · 0 评论 -
DC4:Tcl与Design Compiler (四)——DC启动环境的设置+Comments
本文如果有错,欢迎留言更正;此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner主要内容有: ·启动环境的概述 ·路径变量的定义与解释 ·库的指定与解释(1)启动环境配置简述 我们按照前面的基本流程使用DC进行设置,但是这里主要使用的是脚本,因此不能一条一条命令进行演示其效果。在启动DC之前,首先要配置DC的启动环境,也就是那些库的设定。配置DC的启动环境主要是.synopsys_dc.setup配.原创 2021-07-11 16:09:17 · 710 阅读 · 0 评论 -
DC3:Tcl与Design Compiler (三)——DC综合的流程+comments
本文如果有错,欢迎留言更正;此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner1、基本流程概述首先给三个图,一个图是高层次设计的流程图: 下面是我对这张图的理解: ① 设计之前,准备好库、HDL代码的思想、约束生成;然后根据设计思想用 RTL 源码详细地、完整地为设计建立模型、定义设计中寄存器结构和数目、定义设计中的组合电路功能、定义设计中寄存器时钟等等的设计规格和实现。 ② .原创 2021-07-11 14:27:15 · 774 阅读 · 1 评论 -
DC1+2: Tcl与Design Compiler (一二)——前言+DC综合与Tcl语法结构概述+DCT/DCG+wireloadmodel+Comments
本文如果有错,欢迎留言更正;此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner1、逻辑综合的概述synthesis = translation + logic optimization + gate mapping .DC工作流程主要分为这三步Translation : 翻译,主要把描述RTL级的HDL语言,在约束下转换成DC内部的统一用门级描述的电路(Generic Boolean Gates)(DC自己的.原创 2021-07-11 11:43:25 · 3948 阅读 · 0 评论 -
DC0: 数字设计中的时钟与约束+comments
ps:可以转载,转载请标明出处:http://www.cnblogs.com/IClearner/ 最近做完了synopsys的DC workshop,涉及到时钟的建模/约束,这里就来聊聊数字中的时钟(与建模)吧。主要内容如下所示: ·同步电路与异步电路; ·时钟/时钟树的属性:偏移(skew)与时钟的抖动(jitter)、延时(latency)、转换(transition)时间; ·内部时钟; ·多路复用时钟; ·门控时钟; ·行波时钟; ·双.原创 2021-07-10 17:12:14 · 1220 阅读 · 0 评论 -
转载:VerilogHDL可综合设计+Comments
可综合的语法已经记录得差不多了,剩下一些遗留的问题,在这里记录一下吧。一、逻辑设计(1)组合逻辑设计下面是一些用Verilog进行组合逻辑设计时的一些注意事项: ①组合逻辑可以得到两种常用的RTL 级描述方式。第一种是always 模块的触发事件为电平敏感信号列表;第二种就是用assign 关键字描述的数据流赋值语句。 ②always 模块的敏感表为电平敏感信号的电路可几乎可以完成对所有组合逻辑电路的建模。always模块的敏感列表为所有判断条件信号和输入信号,但一定要注意敏感列表的完整.原创 2021-07-08 17:13:55 · 212 阅读 · 0 评论 -
七段数码管
1. 七段数码管的lookup tablemodule SEG7_LUT ( input [3:0] iDIG, output reg [6:0] oSEG);always@(iDIG)begin case(iDIG) 4h1: oSEG = 7b1111001; // ---t---- 4h2: oSEG = 7b0100100; // |转载 2009-09-23 20:32:00 · 2311 阅读 · 0 评论 -
同步、异步电路
异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO或RAM的读写控制信号脉冲,但它同时也用在时序电路中,此时它没有统一的时钟,状态变化的时刻是不稳定的,通常输入信号只在电路处于稳定状态时才发生变化。也就是说一个时刻允许一个输入发生变化,以避免输入信号之间造成的竞争冒险。电路的稳定需要有可靠的建立时间和持时间,待下面介绍。 同步电路是由时序电路(寄存器和各种触发器)和组合逻辑电转载 2009-10-10 08:29:00 · 8879 阅读 · 1 评论 -
突发模式
突发模式是高速的数据传输模式,其模式通常有几个数据源。在数据总线中,突发模式通常变为专为满足一个设备的通道。在 RAM 和磁盘缓存区中,突发模式可通过预先自动获取其他内存信息来运行。转载 2009-07-01 21:52:00 · 1814 阅读 · 0 评论 -
对Nand flash读操作的分析(转)
前几天大致分析了u-boot针对smdk2410的源码,了解了启动的流程,但是对板上许多硬件的驱动过程还不太清楚。smdk2410源码中有针对Nor Flash的初始化和读取,但源码中没有对Nand Flash的操作,虽然针对其他型号的板子应该有Nand的源码,但方便起见,我查阅了vivi的源码,它支持从Nand Flash启动,自然有我需要的东西。下面我就自己的分析和总结列出来,中间当然也从go转载 2009-12-25 13:50:00 · 827 阅读 · 0 评论 -
FIFO设计中的深度计算
http://www.asic-world.com/tidbits/index.htmlFIFO设计中的深度计算写时钟频率 w_clk,读时钟频率 r_clk,写时钟周期里,每B个时钟周期会有A个数据写入FIFO读时钟周期里,每Y个时钟周期会有X个数据读出FIFO则,FIFO的最小深度是?计算公式如下:fifo_depth = burst_length - burst_lengt转载 2009-11-18 20:34:00 · 5419 阅读 · 0 评论 -
状态机嵌套的例子
该例是一个简化的EPROM的串行写入器。事实上,它是一个EPROM读写器设计中实现写功能的部分经删节得到的,去除了EPROM的启动、结束和EPROM控制字的写入等功能,只具备这样一个雏形。工作的步骤是:1.地址的串行写入;2.数据的串行写入;3.给信号源应答,信号源给出下一个操作对象;4.结束写操作。通过移位令并行数据得以一位一位输出。模块源代码:module writing(reset,转载 2009-10-07 10:58:00 · 6689 阅读 · 1 评论 -
NAND Flash的寻址方式
NAND Flash的寻址方式这两天整理的,发出来和大家共享.NAND Flash Addressing ModeNAND Flash的寻址方式和NAND Flash的memory组织方式紧密相关。NAND Flash的数据是以bit的方式保存在memory cell,一般来说,一个cell中只能存储一个bit。这些cell以8个或者16个为单位,连成bit line,形成所谓的byte(x8)/转载 2009-12-23 14:02:00 · 1091 阅读 · 0 评论 -
汉明码 hamming code
当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码来检测并纠错,简单的说,汉明码是一个错误校验码码集,由Bell实验室的R.W.Hamming发明,因此定名为汉明码。 与其他的错误校验码类似,汉明码也利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。转载 2009-12-25 16:11:00 · 1975 阅读 · 0 评论