关系逻辑

组合逻辑电路中竞争冒险的分析

丶灬走出姿态 提交于 2019-11-28 02:37:42
http://hi.baidu.com/hieda/blog/item/a4e2f826a8295c138b82a142.html 1. 什么是竞争冒险? 2. 竞争冒险产生的原因? 3. 如何判断有竞争冒险? 4. 如何消除竞争冒险? =============================================================================== 1. 什么是竞争冒险? 信号在通过连线和逻辑单元时,都有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,成为“ 竞争 ”;往往导致出现一些不正确的尖峰信号,这些尖峰信号称为" 毛刺 "。 如果一个组合逻辑电路中有"毛刺"出现,就说明该电路存在“ 冒险 ”。冒险是由变量的竞争引起的。冒险又分为逻辑冒险和功能冒险。 简言之:在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争,竞争产生冒险。 2. 竞争冒险产生的原因? (1)根本原因: 延迟 (2)详细分析: 竞争冒险的产生受到四个要素的制约,即:时间延迟、过渡时间、逻辑关系和延迟信号相位。 [1]时间延迟

RTL编码风格所造成的仿真和综合的不匹配

帅比萌擦擦* 提交于 2019-11-28 02:36:31
http://www.cnblogs.com/lunix/archive/2010/12/31/rtl_coding_styles_that_yield_simulation_and_synthesis_mismatches.html 1.0 简介 ASIC 或者 FPGA 设计就是把一个想法或者概念转换成物理实现的过程。这篇文章讨论了 HDL 编码风格所造成的 RTLGate-level 仿真的不一致的几种情况。 它的一个基本的判定规则是,符合以下两种情况的编码风格是坏的编码风格。 提供给 HDL 仿真器的关于设计的信息不能传送给综合工具 综合开关提供给综合工具的信息在仿真器中不可得 如果上犯了上两条禁忌,就会造成综合前的 RTL 仿真和综合后的门级仿真不匹配的问题。这些问题很难发现,因为由于门的数量的增多,完备测试是不可能的,而且如果不注意会最终导致 ASIC 生产的失败。 解决方法就是了解什么样的编码风格或者综合选项会导致 RTL 到门级的仿真不一致,并避免这些问题。 2.0 敏感列表 当一个 always 块中并不包含 Verilog 的关键字 posedge 或者 negedge 的时候综合工具会把它综合成组合或者锁存器逻辑。对于一个组合逻辑 always 块,逻辑直接从块中的等式中推导出, * 而与敏感列表没有关系 * 。综合工具读取敏感列表,并把它与 always

浅淡逻辑设计的学习

妖精的绣舞 提交于 2019-11-28 02:36:22
http://blog.ednchina.com/codeman/200831/message.aspx (1)浅淡逻辑设计的学习   学习逻辑设计首先要有项目挂靠,如果你觉得未来一段时间你都不可能有的话,接下来的内容你就没有必要再看了,花的时间再多也只能学到皮毛--很多细节的问题光写代码是发现不到的。而且要真正入门,最好要多做几个项目(这三年大大小小的项目我做有七八个),总线型的和数字信号处理型的最好都要接触一些,因为这两个方向的逻辑设计差异比较大:前者主要是控制型的,会涉及到状态机等控制逻辑;后者主要是计算型的,难点主要在对符号、浮点数转定点数、位宽等方面的处理上。 第二要有好的师父。这里说的好的师父并不是指画原理图画了几十年的老师傅,而是指曾在专业IC公司做过一段时间的人,好的专业IC公司可以接触国内外最新的设计思想,在他们的帮助下,起点就可以比其他人高不少,更重要的是你可以学习逻辑设计思想性的东西!如果你的师傅经常跟你说画原理图的好处,你还是重新找过师父算了--用原理图设计是一种很落后的方式,即使他们可能会说可以系统级设计(专业的IC设计公司系统级设计绝对是由方案保证的,而不会靠原理图这鬼东西)更为清淅。 第三要看一些好的资料。RTL级的书中《Verilog 硬件描述语言》、EDA先锋写的那几本书都还可以,还有不得不提的是cliff的一些paper( www

一位前辈的工作经验

时光怂恿深爱的人放手 提交于 2019-11-28 02:36:02
http://www.cnblogs.com/jianyungsun/archive/2010/12/07/1899533.html 在公司里的几个月,做的项目其实不多,但是收获还是有一些,我觉得收获最大的是 设计 理念的改变,这也是我这段 时间 最想总结的,我会在后面逐渐阐述。 如对此文有疑问或想给作者提 建议 请给作者发email: wangdian@tom.com 1/时序是设计出来的 我的boss有在华为及峻龙工作的背景,自然就给我们讲了一些华为及altera做逻辑的一些东西,而我们的项目规范,也基本上是按华为的那一套去做。在工作这几个月中,给我感触最深的是华为的那句话:时序是设计出来的,不是仿出来的,更不是湊出来的。 在我们公司,每一个项目都有很严格的评审,只有评审通过了,才能做下一步的工作。以做逻辑为例,并不是一上来就开始写代码,而是要先写总体设计方案和逻辑详细设计方案,要等这些方案评审通过,认为可行了,才能进行编码,一般来说这部分工作所占的时间要远大于编码的时间。 总体方案主要是涉及模块划分,一级模块和二级模块的接口信号和时序(我们要求把接口信号的时序波形描述出来)以及将来如何测试设计。在这一级方案中,要保证在今后的设计中时序要收敛到一级模块(最后是在二级模块中)。什么意思呢?我们在做详细设计的时候,对于一些信号的时序肯定会做一些调整的

威盛ASIC笔试题及心得

时光总嘲笑我的痴心妄想 提交于 2019-11-28 02:36:00
1、用给出的一些门电路,搭出表达式output=en_try? en&nomask : en这一表达式 entry,en,nomask是输入 2、给出电路,将时钟域1的脉冲传到时钟域2,两个时钟域的关系未知 3、给出三分频的电路 4、用pmos和nmos表示F=AB+CD(表达式与原题有点出入,记不清了,大概就这个意思) 5、两段verilog程序,判断哪一段会产生latch,并修改 6、给出了电路图,问在做DFT测试时可能产生什么问题,并修改 7、给了张电路图,是功放与D触发器相连,问如何减少功耗(这个我一点都不懂) 8、触发器S1、组合电路C1、触发器S2、组合电路C2依次相连,问的是时延、时钟等之间的 关系(是不是要考虑hold,setup时间呢?) 9、这个实在想不出了:( 10、用方块表示cpu,硬盘,显卡,南桥(iobridge),北桥(memory bridge),usb控制 器,键盘,内存,画出计算机的结构。 11、关于计算机内存页面管理的东西,画图示意虚拟地址与物理地址的关系,简单介绍块 表 可怜我都不会做:( 贴贴题目积攒一下rp,祝xdjm们好运 先说说题目吧 第一题:给你一堆逻辑门再给你一个逻辑表达式,让你用这些门实现这个表达式 第二题:关于时钟域的,要求把一个时钟域中的信号传递到另外一个时钟域中 第三题:画出三分频1:1的电路图 第四题

异步FIFO结构及FPGA设计 ---跨时钟域设计

心已入冬 提交于 2019-11-28 02:34:21
http://hi.baidu.com/hieda/blog/item/e8f8752465afb337c895593c.html 异步FIFO 结构及FPGA 设计 吴自信,张嗣忠. 单片机及嵌入式系统应用,2000 摘要 :首先介绍异步FIFO的概念、应用及其结构,然后分析实现异步FIFO的难点问题及其解决办法;在传统设计的基础上提出一种新颖的电路结构并对其进行综合仿真和FPGA实现。 1、异步FIFO介绍 在现代的集成电路芯片中,随着设计规模的不断扩大,一个系统中往往含有数个时钟。多时钟域带来的一个问题就是,如何设计异步时钟之间的接口电路。异步 FIFO(First In First Out)是解决这个问题一种简便、快捷的解决方案。使用异步FIFO可以在两个不同时钟系统之间快速而方便地传输实时数据。在网络接口、图像处理等方面, 异步FIFO得到了广泛的应用。 异步FIFO是一种先进先出的电路,使用在需要产时数据接口的部分,用来存储、缓冲在两个异步时钟之间的数据传输。在异步电路中,由于时钟之间周期和相位完全独立,因而数据的丢失概率不为零。如何设计一个高可靠性、高速的异步FIFO电路便成为一个难点。本文介绍解决这一问题的一种方法。 由图1可以看出:整个系统分为两个完全独立的时钟域——读时钟域和写时间域;FIFO的存储介质为一块双端口RAM,可以同时进行读写操作。在写时钟域部分

一个ASIC综合脚本的例子

会有一股神秘感。 提交于 2019-11-28 02:34:02
http://hi.baidu.com/hieda/blog/item/7e6ec631ba4e6aac5edf0e1b.html 第一节,综合举例 什么是综合呢?synthesis,台湾翻译为-合成,其作用就是将硬件描述语言的RTL级代码转变为门级网表。当然,现在综合技术已经很成熟了,还有推出的行为(behavioral)综合和物理(physical)综合。我们这里讨论的是逻辑(logic)综合。 综合技术是提高设计产能的一个很重要的技术,没有综合技术的发展,我们就不可能用HDL实现电路的设计,因为HDL开始是用来供电路仿真建模使用的,到了后来才把其中一部分子集作为可综合的语言,也就是我们使用的RTL CODE。很多人入门都用HDL做设计,就以为HDL就只是用来做设计的,没有看到HDL最初始的一面,所以在验证的时候,就无法用好HDL另外一部分强大的功能。有时间还是可以看看Writing Testbench这本书,增强对HDL语言在验证方面作用的了解,也是提高对HDL认识很好的补充。 我们以DesignCompiler为例子讲解综合的过程。 首先,综合就要必须要用综合库,这个你可以向厂家要,综合库可以通过.lib这个库文件转变成.db综合库,这个过程可以在DesignCompiler里面用实现,综合库里面有什么内容呢?.db 是无法阅读的,.lib是可以阅读的

精解LVM逻辑券与磁盘配额

不羁的心 提交于 2019-11-28 01:40:35
一、LVM简介 LVM是 Linux系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性。 在安装 CentOS系统的过程中选择自动分区时,就会默认采用LVM分区方案,不需要再进行手动配置。如果有特殊需要,也可以使用安装向导提供的磁盘定制工具调整LVM分区。需要注意的是,“/boot”分区不能基于LVM创建,必须独立出来。 二、LVM机制 1、PV(物理券) 物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(Physical Extent,PE),从而构成物理卷。 2、VG(卷组) 由一个或多个物理券组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理券。 3、LV(逻辑券) 逻辑卷建立在卷组之上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中“切出”一小块空间作为用户创建文件系统的基础,这一小块空间就称为逻辑卷。 三、管理LVM 1、常用LVM管理命令 2、PV物理券管理 (1)pvscan命令 pvscan用于扫描系统中的所有物理券,并输出相关信息。 (2

【操作系统】 内存管理

假如想象 提交于 2019-11-28 01:05:27
内存管理概念 内存管理的功能有: 内存空间的分配与回收。由操作系统完成主存储器空间的分配和管理,提高编程效率。 地址转换。在多道程序环境下,程序中逻辑地址与内存中的物理地址不可能一致,因此存储管理必须提供存储变换功能,把逻辑地址转换成相应的物理地址。 内存空间的扩充。利用虚拟存储技术或自动覆盖技术,从逻辑上扩充内存。 存储保护。保证各道作业在各自的存储空间内运行,互不干扰。 创建进程首先要将程序和数据装入内存。将用户源程序变为可在内存中执行的程序,通常需要以下几个步骤: 编译。由编译程序将用户源代码编译成若干目标模块。 链接。由链接程序将编译后形成的一组目标代码及所需的库函数链接在一起,形成一个完整的装入模块。 装入。由装入程序将装入模块装入内存运行。 程序的链接有以下三种方式: 静态链接。在程序运行前,先将各自目标模块及它们所需的库函数链接成一个完整的可执行程序,以后不再拆开。 装入时动态链接。将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的方式。 运行时动态链接。对某些目标模块的链接,是在程序执行中需要该模块时才进行的。其优点是便于修改和更新,便于实现对目标模块的共享。 内存的装入模块在装入内存时,同样有以下三种方式: 绝对装入 。在编译时,若知道某个程序将驻留在内存的某个位置,则编译程序将产生绝对地址的目标代码。绝对装入程序按照装入模块中的地址

Android进阶-Android MVP模式详解

a 夏天 提交于 2019-11-28 00:23:15
一、MVP概述 MVP,全称 Model-View-Presenter,即模型-视图-层现器。 提到MVP,就必须要先介绍一下它的前辈MVC,因为MVP正是基于MVC的基础发展而来的。两个之间的关系也是源远流长。 MVC,全称Model-View-Controller,即模型-视图-控制器。 View:对应于布局文件 Model:业务逻辑和实体模型 Controllor:对应于Activity 但是View对应于布局文件,其实能做的事情特别少,实际上关于该布局文件中的数据绑定的操作,事件处理的代码都在Activity中,造成了Activity既像View又像Controller,使得Activity变得臃肿。 而当将架构改为MVP以后,Presenter的出现,将Actvity视为View层,Presenter负责完成View层与Model层的交互。现在是这样的: View 对应于Activity,负责View的绘制以及与用户交互 Model 依然是业务逻辑和实体模型 Presenter 负责完成View于Model间的交互 下面两幅图通过数据与视图之间的交互清楚地展示了这种变化: MVC模式下实际上就是Activty与Model之间交互,View完全独立出来了。 MVP模式通过Presenter实现数据和视图之间的交互,简化了Activity的职责