
verilog
文章平均质量分 79
硅芯思见
分享个知识居然还有人要收费!!!
为学,扎扎实实,不可沽名钓誉
做事,认认真真,不可吊儿郎当
展开
-
硅芯思见:天天说亚稳态,那亚稳态中的MTBF是啥
在进行电路仿真时,特别是后仿真时,经常会遇到时序违例,常见的有setup违例和hold违例,然后究其原因和危害时,常常会谈论到亚稳态,而谈到亚稳态解决方法时,常常会说到两触发器同步结构。这其实就牵扯亚稳态讨论中的一个关键概念:MTBF,本文,将通过对于MTBF的讨论,示例使用三个或多个触发器到底值不值(当然,如果你抬杠,有钱任性,你的芯片对于时序资源面积功耗等等无要求,n级同步也是可以的)?在具体的电路设计中,特定信号传输的亚稳态的MTBF可以使用与设计和器件相关的特性信息来计算评估。原创 2025-01-29 19:52:28 · 314 阅读 · 0 评论 -
硅芯思见:此非(!)非彼非(~)
一些初学者经常在编写判断条件表达式时经常混用"!"和"~",导致仿真结果有时正确有时错误,出现这种情况的原因是因为对于"!"和"~"没有正确理解和使用导致的,本文将以具体示例说明两者的差异.原创 2022-11-26 11:29:23 · 434 阅读 · 1 评论 -
硅芯思见:UDP是干什么的?
本文示例UDP如何使用原创 2022-11-03 20:11:49 · 915 阅读 · 0 评论 -
硅芯思见:task和function的区别
本文示例task和function的区别联系原创 2022-10-24 19:13:46 · 1423 阅读 · 6 评论 -
硅芯思见:阻塞赋值与非阻塞赋值
本文说明Verilog和SystemVerilog中阻塞赋值与非阻塞赋值的区别原创 2022-10-23 09:18:06 · 6633 阅读 · 34 评论 -
硅芯思见:编译命令指定隐性线网类型
在Verilog中,对于未指定线网类型的隐性线网默认的类型为wire,如果没有对线网进行上拉或者下拉操作,那么其状态为高阻态,即“Z”。对于特定设计在后端实现时会对相应的端口进行上下拉操作,为了保持这种特性,除了显示声明线网类型为tri0或者tri1等外,还可以通过编译命令实现端口上下拉。本文将对通过编译命令实现线网类型的设置进行示例。原创 2022-10-18 23:31:29 · 692 阅读 · 0 评论 -
硅芯思见:线网或变量宽度与端口宽度不匹配
在使用Verilog进行数字设计或者构建验证平台时,如果连接模块端口的线网或变量的宽度与端口定义的宽度不一致,在进行仿真时将有可能出现逻辑功能与期望不一致的情况,本文将对此类情况进行示例分析。原创 2022-10-07 10:18:28 · 813 阅读 · 0 评论 -
硅芯思见:关于generate用法的总结
Verilog中generate语句允许细化时间(Elaboration-time)的选取或者某些语句的重复。这些语句可以包括模块实例引用的语句、连续赋值语句、always语句、initial语句和门级实例引用语句等。细化时间是指仿真开始前的一个阶段,此时所有的设计模块已经被链接到一起,并完成层次的引用。本文将对generate的几种机构进行示例说明.原创 2022-10-04 09:58:14 · 644 阅读 · 0 评论 -
硅芯思见:$test$plusargs和$value$plusargs用法小结
$test$plusargs和$value$plusargs作为进行Verilog和SystemVerilog仿真运行时调用的系统函数,可以在仿真命令中直接通过进行赋值的方式将参数传递进入到设计中,并且不局限于不同仿真器对于参数在仿真命令中定义格式不同的限制,也避免了调换参数带来的频繁编译等问题。使用这两条函数对于搭建测试平台有一定的便利,同时对于理解Factory中用例是如何传递进Proxy Class有一定的帮助。原创 2022-10-03 16:28:59 · 5302 阅读 · 2 评论 -
硅芯思见:线网的隐性声明
线网(net)作为Verilog语言中两种主要数据类型之一(变量数据类型和线网数据类型),主要用来模拟数字设计中连接多个不同模块或者模型的物理连线,因此线网是不存储数据的(除了trireg类型),仿真时线网上显示的数据由驱动该线网的驱动源决定的。如果线网没有被有效驱动,那么其上表现出来的数据是高阻态(除了trireg)。同时同一个模块中不允许对同一个线网进行多次声明。原创 2022-10-02 15:28:13 · 121 阅读 · 0 评论 -
【原创】systemVerilog中的event到底怎么回事儿
在SystemVerilog构建测试平台时,经常会用到event来实现多个进程之间的同步处理,例如一个进程处于等待某事件发生,当该事件发生了那么对应的进程将会被执行。但是有时候我们会遇到明明已经触发了事件,为什么对应的进程还处于挂起等待状态呢?本文将示例说明其中原因。event实际上是一个静态对象句柄指向一个同步的对象,当有进程等待一个某个事件时,这个进程就会被放入这个同步对象中的一个队列中,对于一个事件实际上是可以有多个进程对于这个事件处于一种等待的状态。那么如何让一个进程对于一个事件处于挂起等待状态原创 2021-08-29 22:28:35 · 4829 阅读 · 0 评论 -
【原创】Moore和Mealy状态机
0状态机概述状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。根据状态机的状态是否收敛又可将状态机划分为:有限状态机(FSM:Finite State Machine)和无限状态机(ISM:Infinite State Machine),一般数字电路设计中提及的状态机一般均指FSM,其基本要素包括:状态、输入和输出。其中各要素的含义如下:状态(状态变量):在逻辑设计中,使用状态来表示电路的各种工作状态和顺序;输入:.原创 2021-08-05 11:52:50 · 4926 阅读 · 0 评论 -
【原创】奇数分频器
【设计要求】实现占空比为50%的奇数分频器(示例以三分频为例).【原理分析】在进行数字电路设计的过程中,分频器是设计中使用频率较高的一种基本设计之一,虽然很多厂家都提供特定的电路模块对时钟进行分频、倍频以及特定相移等,但是对于时钟要求不高的逻辑,特别是在仿真过程中,使用硬件描述语言实现分频还是较为方便快捷的,同时通过硬件描述语言实现的时钟分频器对于巩固和加深对于硬件描述语言理解不无裨益.常用的分频器有偶数分频和奇数分频,因为偶数分频相较奇数分频实现较为方便,此处路过不进行赘述.而奇数分频又有占空原创 2021-08-04 23:30:27 · 507 阅读 · 0 评论 -
【原创】parameter、localparam和specparam
在Verilog中,parameter既不属于变量范畴也不属于线网范畴,经常用来定义一个标志符代表一个常量,所以参数的值在仿真运行的过程中不能进行修改。但是通过使用参数,可以提高程序的可读性、可复用性和可维护性。目前常用的参数主要分为两大类:module参数(parameter和localparam)和specify参数(specparam)。虽然参数使用起来较为方便,但是在使用参数时还需要注意以下几点:parameter、specparam、localparam必须在elaboration阶段有确原创 2021-08-02 23:22:33 · 2686 阅读 · 0 评论 -
【原创】条件运算符的真假
在进行Verilog进行编码的时候经常要用到三目的条件运算符,但是经常会有初学者,甚至一些经验丰富的工程师在对条件运算符中的条件表达式进行编写时采用了标识符本身作为判断,导致输出结果与期望不一致。本文将通过示例一种典型的条件运算符使用错误的问题。【问题要求】当信号enable为0时,条件为真,将信号sig1输出;当信号enable为1时,条件为假,将信号sig2输出;【示例代码】【仿真结果】可能有些人满脑子的“纳尼”,怎么跟期望的结果不一致呢?为什么enable为0时原创 2021-08-01 22:16:33 · 478 阅读 · 0 评论 -
【原创】case、casez和casex谁是谁
在Verilog中case语句经常用于多分支表决的结构,case后的表达式会与各分支表达式“全等”那么对应的分支会被执行.其基本结构如下:case(expression)expr1:statement_or_null;…exprn:statement_or_null;default:statement_or_null;endcase虽然一般case经常被使用,但是在构建仿真验证平台时,经常会遇到case后的敏感表达式出现高阻态z和不定态x的情况,而对于部分位出现高阻态z和不定态x的情况...原创 2021-07-31 09:23:09 · 509 阅读 · 0 评论 -
【原创】task和function
在使用Verilog进行设计的过程中,使用task和function在同一个module中多次调用,充分提高了代码的复用性,有效增强设计的可维护性和复用性,可以避免不同模块间代码复制导致的不必要的错误。本文主要探讨task和function的使用以及两者之间的异同点。1 task定义不能出现在过程性语句快中,但是必须在“module-end”结构中。格式一:格式二:task可以没有或者有一个或多个参数,值通过参数传入和传出task。输入输出在任务开始处声明,且输入与输出.原创 2021-07-28 23:05:06 · 2385 阅读 · 0 评论