自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(325)
  • 论坛 (1)
  • 收藏
  • 关注

原创 questa sim的使用方法1

操作系统win101.新建工程依次输入工程的名字,及工程所在的位置2.添加以有的文件或创建新的文件在本例中,.v文件已经存在,直接添加即可,选择,第二个。第一个选项直接调用已经存在的文件,到指定的目录。copy:复制一份文件到指定的位置;也可以通过菜单栏添加已经存在的.V文件添加后,如图所示:3.编译?需要我们进行编译,右击:编译通过后:在library中,将race1抓出来:第二个选项为没有优化的仿真。4.将仿真结果保存下来的命令log -r /*注:使用

2020-09-04 10:41:21 373

原创 questa_sim的使用操作0

1.新建工程:然后修改路径,工程名字即可。添加已有的文件,选择第二个选项。下面俩个选项代表对所选择的文件进行【1】引用【2】拷贝,建议直接拷贝,选择第二个;使用上述方法对文件进行编译,编译成功后,?会变成对号。使用下面的操作打开文件的位置:注意:跑仿真需要有TB文件;选择这个选项是让仿真器不优化任何的仿真逻辑。使用上述改变窗口布局;在sim中查看模块层次;查看信号方向将一部分信号添加波形:选择信号方法:shift+点击信号即可,右击点击添加波形即可。改变仿真

2020-09-04 10:39:28 133

转载 利用questa sim运行调试SV

代码解释:跟c语言的main函数类似,sv语言需要一个仿真开始的入口,这个入口可以是module,program,interface等,这里使用的program,如果把program替换成module,仿真结果也完全一样。Program跟module的区别以后再讲。然后在program里面需要调用initial 语句来表明仿真的各个线程。一个program里面可以用很多个initial块,他们并行从时间0开始执行。Initial块里面只有一句打印,所以最终仿真的输出只有一句打印信息:hello, world

2020-09-01 21:24:44 162

原创 windows下questa sim报错vlog-7--failed-to-open-design-unit-file

错误:error—vlog-7–failed-to-open-design-unit-file-------------rtl-.html解决办法:文件路径太深,将指定文件路径变浅;

2020-08-15 11:10:32 237

转载 UVM多个sequence对应多个case解决方法

在运用uvm做实际项目的时候,因为针对RTL提出不同的需求进行不同的测试方案,很大一部分就是在激励的产生上,有限制条件的激励相比漫无目的的仿真更加有效的找出RTL的bug。因此,同一份测试方案,不同的sequence往往代表着不同的test_case。第一,在这么多不同的case下,我们可以设置一个base_case,base_case将环境env,cfg等一些东西包进去;第二,需要几个不同的sequence就写几个sequence,sequence之间没有联系,继承于uvm_sequence;第

2020-07-19 16:05:00 167

转载 Perl取两组数据的并集、交集、差集等

1.自写脚本,较繁琐#! /usr/bin/perluse warnings;use strict; open A, $ARGV[0] or die;open B, $ARGV[1] or die;open UNION, '>', "union.txt" or die;open INTSEC, '>', "intsec.txt" or die;open DIFF, '>', "diff.txt" or die;open A_SPEC, '>', "a_spec.t

2020-07-13 21:25:51 218

转载 UVM中uvm_component之间的transaction传输

有5个uvm component class:A, B, C, D, E,需要把一个transaction从A通过B, C, D传到E,怎么传输?方法一:使用TLM通信传输,利用多层PORT端口级联实现,如图1所示。A component的代码为:B component的代码为:C component和D component的代码类似于B component。在每个component中定义一个uvm_blocking_put_port端口(PORT)和次内层component的句柄,然后再bu

2020-07-06 10:02:29 679

转载 UVM验证平台中的常用机制(总结&概述)

一个完整的UVM验证平台应该具有一些基本功能:产生并驱动激励,与DUV行为一致的理想参考模型reference_model(golden_model),监测并收集DUV和reference_mode的输入/输出信号,比较并判断DUV和reference_mode的输出是否一致且符合预期结果,等。这些基本的功能由相应的组件来完成。那么,这些组件之间是如何可靠、高效的完成验证工作的?或者说,UVM方法学中有哪些特有的机制可以保证验证平台自动的、可靠的并且高效率的完成验证工作呢?这篇内容将对一些常见的UVM机制进

2020-07-06 09:56:33 441

转载 UVM平台结构及每个组件的作用

对于验证方法学来说,分层的测试平台是一个关键的概念。虽然分层似乎会使测试平台变得更复杂,但它能够把代码分而治之,有助于减轻工作负担,而且重复利用效率提升。验证平台可以类似分为五个层次:信号层、命令层、功能层、场景层和测试层。UVM的基本元素(建模方法)有:uvm object, uvm component, uvm factory, uvm TLM, Message service, configuration mechanism, RAL。UVM组件(uvm component)包含有:uvm_dr

2020-06-26 18:57:42 788

转载 SV面试题5

26、如何在program语句块中实现always语句块?always @(posedge clk or negedge reset) begin if(!reset) begin data <= '0; end else begin data <= data_next; endend// Using forever : slightly complex but doableforever begin fork begin

2020-05-21 20:34:17 238

转载 SV面试题4

16.如何在派生类中调用父类中定义的任务? super.task()17.rand和randc有什么区别?rand-随机变量(Random Variable),在出现所有可能的值之前,可能会出现相同的值。类似于有放回抽签。randc-随机循环变量(RandomCyclic Variable),在出现所有可能的值之前,不会出现相同的值。类似于无放回抽签。18.什么是$root?top-level scope,可用于引用任意层次中例化的模块$root.A; // top level instan

2020-05-21 20:25:15 335

转载 sv面试题3

11. 与队列(queue)相比,链表(linked-list)的优点是什么?队列有固定的顺序,很难将数据插入队列中。但是链表可以轻松地将数据插入任何位置。12.$ random和$urandom有什么区别?$random系统函数每次调用时都会返回一个32位带符号的随机数。$urandom系统函数每次被调用时都会返回一个32位无符号随机数。13.列出预定义(predefined)的随机方法。1.randomize2.pre_randomize3.post_randomize14.pack

2020-05-21 17:43:30 260

转载 面试题2

6.SystemVerilog中有哪些覆盖率(coverage)的类型?代码覆盖率(Code coverage):量化执行了多少行代码(line coverage),执行了哪些路径(path coverage),位变量的值是否覆盖了“0”和“1”(toggle coverage),状态机中的哪些状态和转换已被访问(FSM coverage)。功能覆盖率(Functional Coverage):和Code coverage不同,Functional Coverage衡量的是设计意图实现的完备性,是主观的

2020-05-21 17:33:52 194

原创 面试题19--有限状态机(Finite State Machine, FSM)

一.基本概念状态机的本质就是对具有逻辑顺序或时序规律事件的一种描述方法。这个论断的最重要的两个词就是**“逻辑顺序”和“时序规律”**,这两点状态机的就是状态机所要描述的核心和强项,换言之,所有具有逻辑顺序和时序规律的事情都适合用状态机描述。1.1何时应用状态机第一种思路,从状态变量入手。如果一个电路具有时序规律或者逻辑顺序,我们就可以自然而然地规划出状态,从这些状态入手,分析每个状态的输入,状态转移和输出,从而完成电路功能;第二种思路是首先明确电路的输出的关系,这些输出相当于状态的输出,回溯规划每

2020-05-15 14:30:47 590

原创 面试题18--PWM原理及Verilog实现

一.概念PWM 波即脉冲宽度调制,英文全称Pulse Width Modulation,PWM 控制技术广泛应用在测量、通信、功率控制与变换的等众多领域中,应用的逆变电路绝大部分是PWM 型。以下为周期为1KHz,脉冲宽度(占空比)分别为20%、50%、90%的波形图:当信号周期一定,信号高电平时间所占信号周期的百分比不一样,即为不同占空比的PWM 波:在逆变电路中,当使用这样的波形去驱动MOS 管的导通时,由于一个周期内不同占空比的PWM 信号其高电平持续长度不一样,因此使得MOS 管的开通时间也不

2020-05-14 11:38:05 758 1

原创 面试题17--串并转换

一.移位寄存器(shift register)1.1作用【1】寄存器充当一组数据位的临时存储设备;【2】对于每个输入时钟脉冲,移位寄存器用于将数据左移或右移一位;【3】并行加载是指一次加载一个寄存器的所有触发器;【4】串行加载是指一次将一个寄存器的触发器加载一位;【5】将寄存器的所有位完全移入或移出寄存器所需的时钟脉冲数等于寄存器中的触发器数。1.2四种基本的寄存器配置【1】并行输入,并行输出;【2】串行输入,串行输出(左移和右移);【3】并行输入,串行输出(右移);【4】 串行输入,

2020-05-13 12:23:04 290

转载 面试题15--Glitch Free(无毛刺)时钟切换技术

有毛刺的时钟切换电路原理图:这个时钟切换电路是一个纯组合逻辑,输出时钟(OUT CLOCK)由选择信号(SELECT)控制,当SELECT为1时输出CLK1,反之,输出CLK0.看似很简单,实现了时钟的切换,实则存在着很大的隐患,如下图所示:对上图的Verilog描述:assign outclk = (clk1 & select) | (~select & clk0);相关时钟源的毛刺保护下图显示了防止源时钟相互倍数的时钟开关输出出现毛刺的解决方案。在每个时钟源的选择路径

2020-05-12 11:55:46 326

原创 面试题16--组合逻辑中的竞争与冒险

1. 什么是竞争冒险?【1】信号在通过连线和逻辑单元时,都有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响;【2】信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,成为“竞争”;往往导致出现一些不正确的尖峰信号,这些尖峰信号称为"毛刺"。【1】竞争:当一个逻辑门的两个输入端的信号同时向相反方向变化,而变化的时间有差异的现象;【2】冒险:两

2020-05-12 11:15:28 717

转载 题目14:用Verilog实现1bit信号边沿检测功能,输出一个周期宽度的脉冲信号

【1】上升沿;【2】下降沿;【3】上升沿或下降沿;module Edge_Detect( input clk, input rst_n, input data, output pos_edge, output neg_edge, output data_edge );reg [1:0] data_r;always @(posedge clk or negedge

2020-05-11 12:38:24 487

转载 面试题13--跨时钟域的信号处理技术verilog实现

题目:多时钟域设计中,如何处理跨时钟域【1】单bit:两级触发器同步(适用于慢到快);【2】多bit:采用异步FIFO,异步双口RAM;【3】加握手信号;【4】格雷码转换;一.单bit跨时钟域同步注意:对于单bit的控制信号的同步处理,可以分为电平信号同步,以及脉冲信号信号同步,注意的是这里面的levl_a_in一定是源时钟域的寄存器的信号,如果是组合逻辑的信号可能会产生毛刺;mod...

2020-05-11 12:31:48 990

转载 面试题1--callback机制

1、什么是callback?callback(回调)是一种在不更改实际代码的条件下更改为验证组件(例如driver,generator或monitor)行为的机制。class abc_transactor; virtual taskpre_send(); endtask virtual taskpost_send(); endta...

2020-05-11 12:10:56 259

原创 面试题12--跨时钟域的信号处理技术

一.定义:对于沿触发的触发器,其输出存在俩个有效的状态,即高和低(或者逻辑1和逻辑0)。触发器的建立时间和保持时间在时钟的上升沿左右定义了一个时间窗口,如果触发器的数据输入端的数据在这个时间窗口内发生变换(或者数据更新),那么会产生时序违规。存在违规的原因是建立时间和保持时间的要求被违反了,此时触发器的内部的某个结点可能会在一个电压范围内浮动,无法稳定在逻辑0或者逻辑1状态。...

2020-04-30 09:47:26 895 1

转载 IC面试题11--门控时钟

什么是门控时钟?Clockgating:在数据无效时,将寄存器时钟关闭的技术,能够有效降低功耗, 是低功耗设计的重要方法之一。门控时钟其实就是一个逻辑模块,在寄存器的输入数据无效时,将寄存器的输入时钟置为0,而此时寄存器值保持不变,此时没有时钟翻转,避免了动态功耗。如何生成门控时钟?在IC设计中,编写RTL代码的时候,只要采用合理规范的编码风格,即可以通过EDA工具自行产生门控时钟模块。举...

2020-04-29 08:43:56 527

原创 英文润色插件

一.Grammarly【1】登录网页:https://app.grammarly.com/apps,显示如下:点击左手边的APPS,出现上面的界面,选择for office即可,然后install。下载安装成功后,打开word文件,如下图:如果需要检查错误,需要注册账号,登录即可。找到文件中出现的语法,词的错误,右边框为修改意见。二.GingerGinger(http://ww...

2020-04-28 20:55:36 593

原创 面试题10--多路复用器

一.什么是复用器(mux)或多路复用器(multiplexer )?多路复用器或多路复用器是一种数字元件,可根据选择信号将数据从N个输入之一传输到输出。 下面的情况是N等于4的情况。例如,一个4位多路复用器将具有4位中的每一个N输入,其中每个输入可通过使用选择信号传输到输出。sel是2位输入,可以有四个值。选择线上的每个值将允许将其中一个输入发送到输出引脚输出。一个4x1多路复用器可以用多...

2020-04-28 17:39:25 538

原创 面试题9--分频器

一.基本概念分频器通常用来对某个给定的时钟频率进行分频,以得到所需的时钟频率。在设计数字电路中会经常用到多种不同频率的时钟脉冲,一般采用由一个固定的晶振时钟频率来产生所需要的不同频率的时钟脉冲的方法进行时钟分频。在FPGA的设计中分频器是使用频率较高的基本设计,在很多的设计中也会经常用到芯片集成的锁相环资源,如用Xilinx的DLL以及Altera的PLL来进行时钟的分频、倍频与相移。在一些对...

2020-04-28 10:01:01 721

原创 使用verdi查看波形图

1.使用VCS需要编译的.v文件【1】.v文件module for_practice(input clk,input rst_n,output clk_div );parameter N = 5;//5.5分频reg[3:0]cnt1;reg clkx;reg clky;always@(posedge clk or negedge rst_n)begin i...

2020-04-27 16:42:14 1874

原创 面试题8--计数器

一. 计数器的功能对脉冲CP(clock pulse)进行计数。二.计数器的应用常用在分频,定时,产生节拍脉冲和脉冲序列,进行数字运算等;计数器其实在设计中经常遇到的 计数的场合有很多 ,比如流水线产品数量统计,定时固定长时间比如1s 10ms等。三.计数器的分类一个计数器通常是由一组触发器构成,该组触发器按照预先给定的顺序改变其状态,如果所有触发器的状态改变是在同一时钟脉冲的同一时钟沿...

2020-04-24 14:58:48 562

转载 面试题7--边沿检测

一.概念信号边缘检测(Signal edge detection ):信号沿定义为信号从高状态到低状态的转变,反之亦然。根据过渡的类型,有三种不同类型的边缘检测:【1】上升沿(rising edge):当输入信号从低电平(例如0)转变为高电平(例如1)时;【2】下降沿(falling edge):当输入信号从高状态(例如1)过渡到低状态(例如0)时;【3】任一边沿(either edge)...

2020-04-23 09:49:28 161

原创 面试题6--加法器

单个全加器具有两个一位输入,一个进位输入,一个求和输出和一个进位输出。 它们中的许多可以一起使用来创建纹波进位加法器,该纹波进位加法器可以用于将大数相加。 单个全加器如下图所示。加法器是一个组合电路,它可以在Verilog中使用一个带有赋值的连续赋值或一个包含所有输入的灵敏度列表的always块进行建模。全加器的逻辑描述的verilog代码:///////////////////////...

2020-04-22 22:49:28 505

原创 如何下载在guge中找到的文献

一.找到一篇我们所需要的文献,如下链接:【1】https://ieeexplore.ieee.org/document/8245176截图如下:点击PDF下载后,出现登陆界面,不能直接下载,如下:这时我们只需要找到这篇文章的DOI,就可以准备下载文章了,DOI在这篇文章的截图如图:鼠标右击,然后点击复制链接地址就可以了。现在可以进行下一步了二.使用搜索引擎搜索谷歌镜像网址如下:...

2020-04-22 16:36:50 95

原创 面试题5 4-10线译码器

一.译码器的应用BCD译码器也称为4-10线译码器,译码器主要用于地址译码、指令译码以及逻辑表达式表示。由真值表可以看出,当A3A2A1A0的取值为[0000~1001]时,输出有效,其它情况均为无效,其对应的逻辑器件图如下图所示:verilog代码:module Decode_4_10( input [3:0] indata, output [9:0] outdata ); ...

2020-04-22 16:11:45 563

转载 面试题4-- 数字电路中产生锁存器 Latch的结构

一.概念锁存器(Latch)是数字逻辑电路中很重要的一种基本电路,常见的锁存器包括三个端口:数据输入口、数据输出口、使能端。当使能端为高电平时,输入口的数据直接送到输出口,此时输入输出口可以看成是直接连通的;当使能端为低电平时,输出口的数据保持之前的数据不变,无论输入口的数据怎么变化,输出都保持不变,就是把原来的状态锁存下来了(所以才叫锁存器)。锁存器与触发器的区别:锁存器是电平触发,而触发器...

2020-04-22 11:10:54 484

原创 笔试题3case语句和if...else语句的区别

1、if else:(1)if(表达式)语句;(2)if(表达式) 语句一 else 语句二(3)if(表达式1) 语句一; else if(表达式2) 语句2; else if(表达式3) 语句3; else if(表达式4) 语句4;#语句使用要点:(1)条件语句必须在过程块中使...

2020-04-22 10:12:35 591

原创 笔试题2.1--译码器

**1.原理**解码器(decoder)是一种具有n个输入和2^n个输出的电路,根据输入代码,仅选择输出之一。对于上述电路,有如下结论:【1】当使能(控制)信号无效,即E=0时,不论A1、A0怎么组合,输出的端口信号均为低电平;【2】当使能信号有效,即E=1时,对于输入A1、A0的不同组合,输出的四个端口信号中必有一个为高电平“1”,真值表如下:在真值表中,我们可以将每个输出的布尔...

2020-04-22 08:42:40 367

转载 UVM常用的机制

一个完整的UVM验证平台应该具有一些基本功能:产生并驱动激励,与DUV行为一致的理想参考模型reference_model(golden_model),监测并收集DUV和reference_mode的输入/输出信号,比较并判断DUV和reference_mode的输出是否一致且符合预期结果,等。这些基本的功能由相应的组件来完成。那么,这些组件之间是如何可靠、高效的完成验证工作的?或者说,UVM方法...

2020-04-20 09:46:36 512

转载 1.跨时钟域处理三大方法

跨时钟域处理是FPGA设计中经常遇到的问题,而如何处理好跨时钟域间的数据,可以说是每个FPGA初学者的必修课。如果是还在校的本科生,跨时钟域处理也是面试中经常常被问到的一个问题。https://blog.csdn.net/wordwarwordwar/article/details/77434520在本篇文章中,主要介绍3种跨时钟域处理的方法,这3种方法可以说是FPGA界最常用也最实用的方法,...

2020-04-18 15:13:40 481

转载 VCS+Verdi 产生fsdb波形文件

①在你的tb文件中,加入initial begin $fsdbDumpfile("tb.fsdb");//这个是产生名为tb.fsdb的文件 $fsdbDumpvars; end②在linux命令行输入vcs -full64 -fsdb -f ***.f//其中 -full64是指linux64 启动vcs, ***.f是你放tb文件和.v文件的脚本。参考文献:【1】htt...

2020-04-18 11:00:17 932

原创 VCS filelist 文件格式

VCS filelist 文件格式VCS在运行仿真一般都会加仿真参数 –f filelist,filelist 是包含其他的仿真参数和整个工程的文件列表。具体格式如下://file list format, just for example+v2k-sverilog+define+USE_ASYNC_FIFO+incdir+…/rtl/+incdir+…/sv/+incdir+…/...

2020-04-17 09:49:11 234

转载 vcs和verdi的关系

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

2020-04-17 09:36:53 2098

空空如也

在ubuntu16.04安装cuda失败的问题

发表于 2019-05-08 最后回复 2019-05-08

空空如也

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

TA关注的人 TA的粉丝

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