摘要: VCS对verilog模型进行仿真包括两个步骤: 1. 编译verilog文件成为一个可执行的二进制文件命令为:vcs source_files 2. 运行该可执行文件:./simv 类似于NC, 也有单命令行的方式:vcs source_files -R -R 命令表示, 编译后立即执行。vcs常用的命令选项如下: -cm line|cond|fsm|tgl|obc|path 设定coverage的方式 +define+macro=value+ 预编译宏定义 -f filename RTL文件列表 +incdir+directory+ ...
阅读全文
摘要: 可以产生受约束的随机激励是sv验证语言中最主要的feature,这里有一个常常会被验证工程师忽视的问题,就是随机化种子(seed)。我们知道,用verilog里面的$random或者sv里面的$urandom产生的都只是伪随机数,也就是说,如果不改变seed,每次仿真产生的随机数都一样。sv的受约束的随机化方法与上述情况其实也有点相同。sv中,每个对象维持自身的内部RNG,排他地用于randomize()方法,这使得对象的随机化保持各自独立。当生成对象时,创建它的线程的RNG的下一个值被用于设置成它的RNG的随机化种子。此时对象的new函数()默认的seed为1,如果不改变seed的值,则每次
阅读全文
摘要: 本文先简单介绍一下I2C总线协议,然后给出一个可以用于Verification的verilog model。1.I2C协议2条双向串行线,一条数据线SDA,一条时钟线SCL。 SDA传输数据是大端传输,每次传输8bit,即一字节。 支持多主控(multimastering),任何时间点只能有一个主控。 总线上每个设备都有自己的一个addr,共7个bit,广播地址全0。 系统中可能有多个同种芯片,为此addr分为固定部分和可编程部份,细节视芯片而定,看datasheet。1.1 I2C位传输 数据传输:SCL为高电平时,SDA线若保持稳定,那么SDA上是在传输数据bit。若SDA发生跳变,则用来
阅读全文
摘要: 网上订票,宣告拼体力时代的终结,取而代之,拼脑力的时代到来了。下面介绍一下最近看的订票选用浏览器的技巧,一言以蔽之,用chrome和firefox才是王道。方法.1 用chrome订票先介绍用chrome订票所需的装备:1. chrome浏览器2. 12306 Auto Login1.0自动登录脚本。在chrome中,打开https://gist.github.com/raw/1570973/0064a3a6ed37ef70e817d4f5d69bef0ac76b5345/12306AutoLogin.user.js 地址,进行插件安装。3.Chrome自带的javascript调试工具装备.
阅读全文
摘要: rt,什么是向量部分选择呢?verilog-2001 LRM中有这么一句话:对于a[8*i+:8],this is the so-called "Indexed vector part selects" 。在Verilog-1995中,可以选择向量的任一位输出,也可以选择向量的连续几位输出,不过此时连续几位的始末数值的index需要是常量。vect[msb_expr : lsb_expr]; //其中msb_expr和lsb_expr必须是常量表达式。而在Verilog-2001中,可以用变量作为index,进行part select。[base_expr +: width
阅读全文
摘要: 对verilog的初学者来说,线网和变量reg之间的不同点,也许是最难的。你有时得用reg而有时却得使用wire,使用来使用去,简直头晕。而在SystemVerilog中,我们将会看到你可以在过去verilog中用reg型或是wire型的地方用logic型来代替。实际上logic是对reg数据类型的改进,使得它除了作为一个变量之外,还可以被连续赋值、门单元和模块所驱动,显然,logic是一个更合适的名字。举个RAM modelling的例子来说明上述问题,我们分别用Verilog和SystemVerilog来实现。//RAM modelling in Verilog1 module mema
阅读全文
摘要: 根据海思验证大牛一文《总结我的思路,如何在验证中发现和定位Bug》整理而得。很多新晋的验证人员抱怨,这么多信号,这么复杂的连接关系,千头万绪,眼睛都看得长挑针,还是看不出东西。OK,我说,这是没办法的事情,看波形,追波形,是一个经验积累的过程,任谁都逃不掉。越是看,越是明白,越是不看,越是不懂。看得多了,自然就知道应该抓那些信号,如何分类,如何追溯了。所以我奉劝某些希望通过全自动的Log和信息推导结果,或者每次一有问题就找设计人员看波形的验证人员,回头是岸。波形,是逻辑运行的最真实的表现,逃不掉的。看波形首先有两个基本的看点。先看X和Z。任何一个波形,无论是验证的前期、中期、后期,到手之后,先
阅读全文
摘要: 完整的、详细的设计规范是验证工作的重要起点。验证工作根据设计规范(specification)进行,详细的spec是RTL代码编写工作的依据,也是验证工作的依据。当验证过程发现DUT的响应与testbench预计的不符时,需要根据spec判断是DUT出现错误还是testbench出现错误。参数化的全局定义全局定义会给书写和仿真带来很大方便,在编写testbench过程中,如果激励中有一些重复的事件,可以考虑将这些语句编写成一个task。比如:1.Register相关位及其数值可以全局宏定义在reg_define.v中。2.相关路径可以全局宏定义在define_board.v中。3.系统重要变量
阅读全文
摘要: tar命令详解-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出参数-f是必须的-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。# tar -cf all.tar *.jpg这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。#
阅读全文
摘要: 验证的主要目的:就是检查时间模型是否满足时间要求,是否实现了时间所需的功能。对于集成电路来说,具体就是在时间需求规定的激励下,电路是否产生了符合功能要求的输出;以及在设计需求规定的条件下,电路是否完成正常的功能。 以RTL级设计为仿真对象的前仿真,主要是验证电路的逻辑功能,信号的跳变是瞬时完成的,因此只能在功能上证明设计的正确性,而无法证明在实际电路中逻辑功能仍然正确。 门级仿真是对RTL代码综合并布局布线后生成的门级网表进行时序仿真,是引入了逻辑延时时间的仿真。在后仿真阶段,仿真的过程中引入了线上和门级的延时,重点是验证在引入了实际时延之后系统功能是否正确,以避免因时延问题而导致系统时序功.
阅读全文
摘要: U盘或硬盘装满资料后,质量会增加吗?要回答这个问题,先让我们看看U盘和硬盘的存储原理。U盘又称为闪存(Flash Memory),其存储介质为flash,简单地说,flash是用浮栅来存储数据的,浮栅就是可以存储电荷的电荷势阱,向flash写入数据的过程就是向这个电荷势阱注入电荷的过程。至于硬盘,如今使用较多的是固态硬盘,其存储介质多为DRAM,简单来说,DRAM是用电容来存取数据的,电容可以充放...
阅读全文
摘要: 曾几何时,说起eMule,那可是神一样的驴子,无人不知,无人不晓。此驴只应天上有,人间能得几回见。如今,驴子仍然强大,却不坚挺了,为何?因为如今大行其道的是VC版本的电驴,而非真正的原版电驴(eMule),VC版本的一些功能被和谐了,属于阉割版本,所以不坚挺了。有许多不明真相的群众仍在使用 VeryCD 欺世盗名的电驴,在此我呼吁:请用真正的原版电驴(eMule),VeryCD是假电驴!让我们来看看真电驴的长相,多语言,纯绿色。eMule官方电驴,加强内网支持,完整ed2k和kad搜索,不带关键字过滤,更适合不熟悉电驴的中国用户使用。真正的原版电驴网站http://www.emule-proj
阅读全文
摘要: 这几天感觉网突然慢了,一开始以为又是线路的问题,没怎么在意,可连续几天晚上都是如此,郁闷啊!打开p2p终结者,竟然发现有三台机子联网,其中一台机子的速度竟然达到250K!难怪慢啊,2M的带宽几乎被它全占去了,更郁闷的是这台机子还不是我们屋子的,原来被蹭网了啊!今天你被蹭网了吗?我想好奇的问一下!让我们先来说一下如何查看自己的电脑是否被蹭网了!(1)使用XP系统的可以打开"网络邻居"——"工作组计算机",使用Win7的打开"网络",看看有几台电脑显示。如果你只开一台电脑的话,就只显示一台电脑。如果多了,就是有人蹭网。(2)在浏览器地址栏
阅读全文
摘要: 首先要明白,安全删除硬件的目的是让硬盘磁头归位,不再进行读写,以保护硬盘。XP里,安全删除硬盘后,移动硬盘会断电停转。而vista和win7安全删除硬件后,不会切断电源的连接,只会把数据的连接断开,也就是说硬盘还在继续转动,但是确实可以直接拔了。那如果遇到不能安全删除硬件的时候怎么办呢?(说明一些基本方法已经有过,但还是不淫(音xing))我这里告诉大家解决方法,注销、待机、关机之类的方法我就不说了,因为一般人都不会这样做的。(1)使用unlocker,一个免费的右键扩充工具。安装后,对U盘盘符点右键,选unlocker解锁,然后进行安全删除。下载地址:http://ccollomb.free
阅读全文
摘要: 收不到彩信的原因是彩信接入点没有设置对,因为彩信的接入点需要填写主页地址。你可以依次打开"信息"—"选项"—"设置"—"彩信使用的接入点",看看是不是没有定义接入点。移动用户的解决方法:依次打开"工具"—"设置"—"连接设置"—"接入点",查找有无接入点cmwap。若没有的话,"选项"—"新增接入点",建立新连接名称:cmwap(这里可以根据自己的喜欢起名称)建立好新接入点后,需要定义以下选项,其他的默认设置:接入点名称:cmwap主页:http://mmsc.monternet.com"选项"—"高级设置"—"代理服务器地址":10.0.0.172代理端口号码:80然后,"信息"—"选项"—
阅读全文
摘要: 移动文件时,复制和剪切哪个更快?这个问题相信很多人都会问到,但是,相信很多人又都不太清楚。直觉告诉我们,不能简单地说谁快谁慢,因为不同的情况下,结果是会不一样的。X86的文件系统在硬盘上面是用双向链表的数据结构来存取的,以下我会分成四种情况来说明。情况1:从X盘某一文件夹剪切到X盘另一文件夹。X86文件系统是采用更改链表前置和后继所指向硬盘地址来实现的。因为单纯的前置和后继的更改非常快(只需要写入地址),所以几乎感觉不到等待时间。情况2:从X盘某一文件夹复制到X盘另一文件夹。此操作除了要修改前置和后继之外,还要向硬盘写入数据实体。故速度要慢于情况1。情况3:从X盘某一文件夹剪切到Y盘某一文件夹
阅读全文
摘要: IC Integrated Circuit 缩写,集成电路 ICDS IC Design Service 缩写,芯片设计服务 IP Intellectual Property 缩写, 知识产权,在芯片设计中指对某种设计技术的专利SoC System on Chip缩写, 指单芯片系统设计,是当今混合信号IC设计的趋势 ASIC Application Special Integrated Circ...
阅读全文
摘要: 今天彻底无语了,一个学弟问我,从Schematic到GDSⅡ的流程是什么,我竟然答之,仿真、综合、布局布线……事后,觉得不太对,查了一下资料,那里是不太对啊,简直是一点都不对,暴寒啊,也许是自己真是好久没做IC方面的东西了。一般的IC设计流程可以分为两大类:全定制和半定制,这里我换一种方式来说明。 1.1 从RTL到GDSⅡ的设计流程: 这个可以理解成半定制的设计流程,一般用来设计数字电路。 整个流程如下(左侧为流程,右侧为用到的相应EDA工具): 一个完整的半定制设计流程应该是:RTL代码输入、功能仿真、逻辑综合、形式验证、时序/功耗/噪声分析,布局布线(物理综合)、版图验证。 至于FPGA
阅读全文
摘要: 内存区域可以分为栈、堆、静态存储区和常量存储区,局部变量,函数形参,临时变量都是在栈上获得内存的,它们获取的方式都是由编译器自动执行的。利用指针,我们可以像汇编语言一样处理内存地址,C 标准函数库提供了许多函数来实现对堆上内存管理,其中包括:malloc函数,free函数,calloc函数和realloc函数。使用这些函数需要包含头文件stdlib.h。四个函数之间的有区别,也有联系,我们应该学会...
阅读全文
摘要: C语言中的精华是什么,答曰指针,这也是C语言中唯一的难点。C是对底层操作非常方便的语言,而底层操作中用到最多的就是指针,以后从事嵌入式开发的朋友们,指针将陪伴我们终身。本文将从八个常见的方面来透视C语言中的指针,当然,还有其他没有具体提到的方面,像指针表达式、指针安全等问题,以后有机会我再慢慢补充。还是那句老话,重要的是实践,多写代码,才是学好C语言的关键。1.指针类型分析分析指针,可以从变量名处...
阅读全文