verilog
亦可西
这个作者很懒,什么都没留下…
展开
-
verilog状态机以及编码详解
在Verilog中最常用的编码方式有:1、二进制编码(Binary)2、格雷码(Gray-code)编码3、独热码(One-hot)编码 二进制码和格雷码是压缩状态编码。 若使用格雷编码,则相邻状态转换时只有一个状态位发生翻转,这样不仅能消除状态转换时由多条状态信号线的传输延迟所造成的毛刺,又可以降低功耗。 二进制编码也可称连续编码,也就是码元值的大小是连续变化的。 如S0=3'd0,S1=3'd1,S2=3'd2,S3=...转载 2020-09-01 11:55:29 · 1827 阅读 · 0 评论 -
verilog读入.txt的有符号十进制数,把有符号十进制数写入到.txt文件中
在进行功能仿真时,经常需要使用外部的数据作为输入,而数据经常存放在.txt,.dat等文本文件中;本文介绍一种从.txt中读取有符号十进制数的方式和写入有符号数到.txt文件的方式:代码如下:一、从.TXT中读取有符号十进制数:reg signed [8:0] dataa1[1:784];reg signed [8:0] datab[1:36];reg signed [8:0...原创 2020-05-06 16:01:36 · 6840 阅读 · 2 评论 -
verilog中的定点数、浮点数、定点小数、定点整数的表示及运算
1、定点数: 顾名思义定点数就是小数位固定不变的数叫做定点数,也就是小数点是定在某个位置不变的数。2、定点数的分类: (1)定点整数:定点整数的小数点后面没有其他的数值,即小数点定在了数的最后面 定点整数又分为以下两类: ...原创 2020-05-05 12:14:55 · 37754 阅读 · 7 评论 -
Vivado中电路结构的网表描述
在vivado集成环境中,网表时对设计的描述,如网表由单元(cell)、引脚(pin)、端口(port)和网络(Net)构成。(1)单元是设计单元 1、设计模块(Verilog HDL)/实体(VHDL)。 2、元件库中的基本元素(Basic Elements ,BLEs)实例。如LUT、FF、DSP、RAM等。 3、硬件功能的类属表...原创 2019-08-10 15:14:13 · 1130 阅读 · 0 评论 -
verilog之门级相关知识
1、veriog中有关门的关键字总共有26个,本篇只介绍简单的几个 (1)and-------与门 (2)nand-------与非门 (3)nor ---------或与门 (4)or-----------或门 (5)xor---------异或门 (6)xnor--------同或 ...原创 2019-07-12 15:38:05 · 3516 阅读 · 3 评论 -
verilog系统任务之$random
这个系统函数提供了一个产生随机数的手段,当函数被调用时返回一个32位的随机数。它是一个带符号的整形数。$random的一般用法:$random%b,其中b>0。它给出了一个范围在(-b+1)到(b-1)的随机数。例如:reg[23:0]rand;rand = $random%60;上述例子是产生-59-59之间的随机数;reg[23:0]rand;ran...原创 2019-07-11 21:46:13 · 6400 阅读 · 1 评论 -
VIVADO 中的几种仿真选项以及功能仿真、前仿真、后仿真、时序仿真
run behavioral simulationrun post-synthesis simulationrun post-synthesis timing simulationrun post-implementation function simulationrun post-implementation timing simulation运行行为仿真运行综合后仿真运行综合后...原创 2019-07-16 10:18:12 · 27911 阅读 · 1 评论 -
verilog中的initial块、always块详细解释
一、两者的关系 一个程序块可以有多个initial和always过程块。每个initial和always说明语句在仿真的一开始同时立即开始执行initial语句只执行一次,而always语句则不断重复的活动着,直到仿真结束。但always块语句后面跟着的过程快是否运行,满足则运行一次,满足则运行一次,直到程序结束。一段程序中使用的initial和always语句的次数不受限制,他们都...原创 2019-07-11 10:38:10 · 33263 阅读 · 4 评论 -
verilog 中generate(生成块)的相关知识详解
介绍:生成块可以动态地生成Verilog代码。这一声明语句方便了参数化模块的生成。当对矢量中的多个位进行重复操作时,或者当进行多个模块的实例引用的重复操作时,或者在根据参数的定义来确定程序中是否应该包括某段Verilog代码的时候,使用生成块语句能够大大地简化程序的编写过程。生成块语句能够控制变量的声明、任务或者函数的调用,还能对实例引用进行全面的控制。编写代码时必须在模块中说明生成的实例范...原创 2019-07-10 23:39:48 · 11062 阅读 · 1 评论 -
verilog 中生成块的相关知识
介绍:生成块可以动态地生成Verilog代码。这一声明语句方便了参数化模块的生成。当对矢量中的多个位进行重复操作时,或者当进行多个模块的实例引用的重复操作时,或者在根据参数的定义来确定程序中是否应该包括某段Verilog代码的时候,使用生成块语句能够大大地简化程序的编写过程。生成块语句能够控制变量的声明、任务或者函数的调用,还能对实例引用进行全面的控制。编写代码时必须在模块中说明生成的...原创 2019-07-10 22:21:45 · 1506 阅读 · 3 评论 -
verilog之编程应该注意的事项
一、综合的一般原则1) 综合之前一定要进行仿真,这是因为仿真会暴露逻辑错误,所以建议大家这样做。如果不做仿真,没有发现的逻辑错误会进入综合器,使综合的结果产生同样的逻辑错误。2) 每一次布局布线之后都要进行仿真,在器件编程或流片之前要做最后的仿真。3) 用Verilog HDL描述的异步状态机是不能综合的,因此应该避免用综合器来设计,如果一定要设计异步状态机则可用电路图输入的方法来设计。...原创 2019-07-14 17:30:10 · 1014 阅读 · 0 评论 -
verilog之状态机详细解释(二)
一、有限状态机设计的一般步骤:1) 逻辑抽象,得出状态转换图就是把给出的一个实际逻辑关系表示为时序逻辑函数,可以用状态转换表来描述,也可以用状态转换图来描述。这就需要:• 分析给定的逻辑问题,确定输入变量、输出变量以及电路的状态数。通常是取原因(或条件)作为输入变量,取结果作为输出变量。• 定义输入、输出逻辑状态的含意,并将电路状态顺序编号。• 按照要求列出电路的状态转换表或画出状...原创 2019-07-14 15:46:22 · 5693 阅读 · 0 评论 -
verilog 中if....else语句以及case语句详细理解
1、if else:(1)if(表达式)语句;(2)if(表达式) 语句一 else 语句二(3)if(表达式1) 语句一; else if(表达式2) 语句2; else if(表达式3) 语句3; else if(表达式4) 语句4;#语句使用要点:(1)条件语句必须在过程块中使用。所...原创 2019-07-10 11:10:59 · 33444 阅读 · 3 评论 -
verilog之状态机详细解释(一)
一、有限状态机定义有限状态机(Finite-State Machine,FSM),又成为有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。笔者常在电机控制、通信协议解析等应用场景下应用FSM。 本文所讲的是基于硬件描述语言Verilog HDL的有限状态机的编写技巧及规范。众所周知FPGA以其并行性和可重构性为世人所知,而在当今的电子世界,基本所有的器...原创 2019-07-14 11:28:39 · 44816 阅读 · 0 评论 -
verilog之状态机的结构
原创 2019-07-13 17:43:29 · 861 阅读 · 0 评论 -
同步时序逻辑与异步时序逻辑
同步时序逻辑:是指表示状态的寄存器组的值只可能在唯一确定的触发条件发生时刻改变。只能由时钟的正跳沿或负跳沿触发的状态机就是一例。 always @(posedge clock) 就是一个同步时序逻辑的触发条件, 表示由该 always 控制的 begin end 块中寄存器变量重新赋值的情形只有可能在 clock 正跳沿发生。异步时序逻辑:是指触发条件由多个控制因素组成,任何一个因素的跳变都...原创 2019-07-13 16:38:46 · 5965 阅读 · 0 评论 -
verilog之用户定义原语UDP详细解释
一、UDP的含义 用户定义的原语是从英语User Defined Primitives 直接翻译过来的,简称UDP。利用UDP用户可以定义自己设计的基本逻辑元件的功能。也就是说,可以利用UDP来定义自己特色的用于仿真的基本逻辑元件模块并建立相应的原语库。这样就可以与调用verilog HDL基本逻辑元件的方法来调用原语库中相应的元件模块,并进行仿真。由于UDP是由查找表的方法来...原创 2019-07-12 21:04:42 · 7015 阅读 · 1 评论