verilog/sv语法
limanjihe
这个作者很懒,什么都没留下…
展开
-
寄存器与锁存器的区别
锁存器与寄存器的区别 // 这篇文章之前写的有点问题,最近在做工程的时候同时看了Digital Design Using Digilent FPGA Boards一本老外写的书的时候,对这个问题有了比较彻底的认识。首先应该明确锁存器和触发器也是由与非门之类的东西构成。尤其是锁存器,虽说数字电路定义含有锁存器或触发器的电路叫时序电路,但锁存器有很多组合电路的特性。组合电路就是一个真值表,一个函数,一原创 2015-03-21 12:10:46 · 4937 阅读 · 0 评论 -
枚举类型
reference: http://www.cnblogs.com/JCSU/articles/1299051.html (非常详细,其中有些细节问题应注意) http://blog.csdn.net/learnerz/article/details/63959661. 枚举的定义枚举类型定义的一般形式为: enum 枚举名{ 枚举值表 };在枚举值表中应罗列出所原创 2016-10-08 10:39:09 · 432 阅读 · 0 评论 -
#ifndef/#define/#endif与#undef
reference: http://blog.csdn.net/abc5382334/article/details/18052757 想必很多人都看过“头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用”。但是是否能理解“被重复引用”是什么意思?是不能在不同的两个文件中使用include来包含这个头文件吗?如果头文件被重复引用了,会产生什么后果原创 2016-10-08 09:59:58 · 3212 阅读 · 0 评论 -
verilog调试--- $test$plusargs和$value$plusargs的用法
VERILOG的参数可以用define和parameter的方式定义,这种方法要求我们在编译前将变量必须定义好,编译完成之后再也不能修改;然而,有时候我们在进行仿真时,需要从外部传递参数,这个要求怎么满足呢?我们来看下 $test$plusargs和$value$plusargs的功能,首先来看一个简单的例子:`timescale 1ns/1psmodule tb;转载 2016-08-26 10:22:16 · 2709 阅读 · 0 评论 -
关于$test$plusargs和$value$plusargs的小结
Abtract $test$plusargs和$value$plusargs作为进行Verilog和SystemVerilog仿真运行时调用的系统函数,可以在仿真命令直接进行赋值,并且不局限于不同仿真器对于参数在仿真命令中定义格式不同的限制,也避免了调换参数带来的频繁编译等问题。使用这两条函数对于搭建测试平台有一定的便利,同时对于理解Factory中用例是如何传递进Proxy Class转载 2016-08-26 10:23:22 · 7671 阅读 · 1 评论 -
Verilog中阻塞与非阻塞语句
reference : http://www.cnblogs.com/funny-xiaomao/archive/2012/06/20/2556178.html这几天一直在纠结阻塞与非阻塞的问题,到现在基本弄清楚了。在纠结这个问题的时候,还顺便弄清楚了前仿真与后仿真,Verilog的分层事件队列,使用系统任务的一些原则等。这些问题以后再说,现在只谈一下我对阻塞与非阻塞的理解。转载 2016-09-01 10:11:21 · 565 阅读 · 0 评论 -
异或^的几个应用(verilog)
reference : http://www.cnblogs.com/danh/archive/2010/12/24/1915810.html (博客有参考价值)一、交换两个整数的值而不必用第三个参数a = 9;b = 11;a=a^b; 1001^1011=0010b=b^a; 1011^0010=1001a=a^b; 0010^1001=10原创 2016-08-31 11:09:05 · 59009 阅读 · 2 评论 -
verilog入门经验(一 ) a lways块使用
1. 信号的产生及always块使用注意事项 1.1 不要在不同的always块内为同一个变量赋值。即某个信号出现在 所以注意,在产生一个信号时,所有产生该信号的条件都应放在一个always块内考虑。 1.2 不要在同一个always块内同时使用阻塞赋值(=)和非阻塞赋值( 1.3 使用always块描述组合逻辑时使用阻塞赋值(=),在使用alw转载 2016-09-09 18:12:00 · 807 阅读 · 0 评论 -
Verilog延时:specify的用法(转)
检查时序的方式之一是时序仿真,在仿真过程中计算与该模块相关的延迟值;之二是静态时序验证。(1)延迟类型·分布延迟:在每个独立的元件基础上定义一种建模方式是将延迟值赋给独立的门,另一种是在单独的assign语句中指定延迟值。·集总延迟:定义在每个独立模块基础上,表面看来像是模块输出门的当延迟。它比分布延迟更容易建模。·引脚到引脚(即路径)的延迟:分别把延迟赋给模块中从每个输入到每转载 2016-04-18 16:29:14 · 4779 阅读 · 0 评论 -
RTL行为级仿真、综合后门级功能仿真和时序仿真
数字电路设计中一般有源代码输入、综合、实现等三个比较大的阶段,而电路仿真的切入点也基本与这些阶段相吻合,根据适用的设计阶段的不同仿真可以分为RTL行为级仿真、综合后门级功能仿真和时序仿真。这种仿真轮廓的模型不仅适合FPGA/CPLD设计,同样适合IC设计。...一、RTL行为级仿真 在大部分设计中执行的第一个仿真将是RTL行为级仿真。这个阶段的仿真可以用来检查代码中的语法错转载 2016-04-14 16:27:51 · 13174 阅读 · 1 评论 -
verilog语法注意部分(转)
generate语句Verilog-2001添加了generate循环,允许产生module和primitive的多个实例化,同时也可以产生多个variable,net,task,function,continous assignment,initial和always。在generate语句中可以引入if-else和case语句,根据条件不同产生不同的实例化。为此,Verilog-2001还增加了以转载 2016-01-12 16:00:30 · 4705 阅读 · 0 评论 -
Verilog中Dump函数及用法
Verilog提供一系列系统任务用于记录信号值变化,常见的格式有vcd,fsdb等。 1,Dump VCD格式$dumpfile("file. dump"); 打开一个VCD数据库用于记录$dumpvars(level,start_module); 要记录的信号,level=0表示记录所有$dumpflush; 将VCD数据保存到磁盘 不明白$dumpoff; 停止记录$dumpon;转载 2015-11-19 10:26:26 · 31760 阅读 · 0 评论 -
同步信号与异步信号的问题
时钟信号一般为脉冲方波信号,高低电平交错,所以信号存在上升沿与下降沿,同步置零/置位就是在时钟信号上升沿或下降沿时刻出发的信号。异步置零/置位不受CLK(时钟信号)的约束。寄存器的输出信号,有的受CLK约束,就是当输入信号改变时,输出信号不立刻改变,需要等到CLK的触发,寄存器的输出信号才会随着之前输入的改变而变化。区别触发器的同步与异步,要弄清楚计数到条件值时,输出信号是否受CLK的限制。再就是原创 2015-03-21 10:45:45 · 5341 阅读 · 0 评论 -
Bcd码与二进制区别
BCD码与十进制数的转换关系很直观,相互转换也很简单,将十进制数75.4转换为BCD码:7->0111,5->0101,4->0100所以拼成8421BCD码的结果是:(0111 0101.0100)BCD;若将BCD码1000 0101.0101转换为十进制数:1000->8,0101->5,0101->5所以结果是:(85.5)D。 注意:同一个8位二进制代码表示的数,当认为它表示的是二进制数转载 2015-03-21 09:45:44 · 5802 阅读 · 0 评论 -
二进制乘法原理
二进制乘法原理:就是左移(进位)8次,每次最高位为1则加进去,8位移完就得出乘积了实际上和我们做10进制的乘法是一样的,只不过这里的进制是2罢了比如5×6,转成二进制就是0101×0110 十进制乘法大家都会做,公式就是我们他当成十进制101×110来计算下看看 4位乘积=被乘数×千位被+被乘数×百位+被乘数×十位+被乘数×个位既0101×0110=101×0000+101×100+101×10+原创 2015-03-21 21:29:41 · 32816 阅读 · 1 评论 -
Verilog描述FSM应注意的问题
用一个always块描述FSM电路,也可以根据时序电路的组成框图用两个描述。在时钟的有效沿到来前,可以根据电路 当前状态+输入决定的输出+次态,用一个always块描述。在时钟的有效沿到来时,电路会有当前状态转移到次态,可以用一个时序的always块描述。 可以对第二种方法进行细化,用三个块描述。分别为,输出用一个组合的块描述,次态用一个组合的块描述,电路的状态转化用一个时序的块描述。 I原创 2015-03-21 08:42:20 · 1192 阅读 · 0 评论 -
关于verilog-2001标准中signed类型的reg/wire
reference: https://www.cnblogs.com/lianjiehere/p/3968103.html关于verilog中的signed类型在数字电路中,出于应用的需要,我们可以使用无符号数,即包括0及整数的集合;也可以使用有符号数,即包括0和正负数的集合。在更加复杂的系统中,也许这两种类型的数,我们都会用到。有符号数通常以2的补码形式来转载 2017-11-15 14:39:46 · 15858 阅读 · 0 评论