![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FPGA verilog
文章平均质量分 57
verilog相关知识
嗒曦
这个作者很懒,什么都没留下…
展开
-
Verilog 数据类型
Verilog 最常用的 2 种数据类型就是线网(wire)与寄存器(reg),其余类型可以理解为这两种数据类型的扩展或辅助。wire 类型表示硬件单元之间的物理连线,由其连接的器件输出端连续驱动。如果没有驱动元件连接到 wire 型变量,缺省值一般为 "Z"。举例如下:wire interrupt ;wire flag1, flag2 ;wire gnd = 1'b0 ; 线网型还有其他数据类型,包括 wand,wor,wri,triand,trior,trireg 等。这些数据类型用的原创 2022-06-29 00:12:37 · 1217 阅读 · 0 评论 -
Verilog 过程连续赋值
Verilog 过程连续赋值原创 2022-06-30 23:19:29 · 2160 阅读 · 0 评论 -
流线线使用阻塞还是非阻塞
流线线使用阻塞还是非阻塞原创 2022-06-29 22:18:31 · 116 阅读 · 0 评论 -
verilog 等价操作符
等价操作符包括逻辑相等(==),逻辑不等(!=),全等(===),非全等(!==)。等价操作符的正常结果有 2 种:为真(1)或假(0)。逻辑相等/不等操作符不能比较 x 或 z,当操作数包含一个 x 或 z,则结果为不确定值。全等比较时,如果按位比较有相同的 x 或 z,返回结果也可以为 1,即全等比较可比较 x 或 z。所以,全等比较的结果一定不包含 x。举例如下:A = 4 ;B = 8'h04 ;C = 4'bxxxx ;D = 4'hx ;A == B //为真A == (原创 2022-06-28 23:50:43 · 726 阅读 · 0 评论 -
Verilog 大小端以及 +:使用
module test; reg [7:0] vect_1; reg [0:7] vect_2; initial begin vect_1 = 'b0001_1010; vect_2 = 'b0010_0010; $display("vect_1[3] = %b, vect_2[3] = %b", vect_1[3], vect_2[3]); $display("vect_1[7:0] = %b, vec原创 2022-06-28 22:23:03 · 1299 阅读 · 0 评论 -
Verilog 时序控制
时延控制(#),事件触发(@),边沿触发(posedgeornegedge),电平触发(wait)原创 2022-06-29 22:26:44 · 1977 阅读 · 0 评论 -
Verilog 表达式
Verilog 中提供了大约 9 种操作符,分别是算术、关系、等价、逻辑、按位、归约、移位、拼接、条件操作符。原创 2022-06-29 00:09:17 · 1829 阅读 · 0 评论 -
verilog REG 寄存器、向量、整数、实数、时间寄存器
verilog REG 寄存器、向量、整数、实数、时间寄存器原创 2022-06-29 21:34:22 · 4772 阅读 · 1 评论 -
Verilog 线型wire 种类
1.Nets(网络连线):由模块或门驱动的连线。驱动端信号的改变会立刻传递到输出的连线上。例如:下图,selb的改变,会自动地立刻影响或门的输出。连接(Nets)类型变量的种类:类型 功能 wire,tri 对应于标准的互连线(缺省)supply1, supply2 对应于电源线或接地线wor, trior原创 2022-06-29 21:32:16 · 1012 阅读 · 0 评论 -
竞争与冒险 毛刺
小结一般来说,为消除竞争冒险,增加滤波电容和逻辑冗余,都不是 Verilog 设计所考虑的。计数采用格雷码计数器,大多数也是应用在高速时钟下减少信号翻转率来降低功耗的场合。利用触发器在时钟同步电路下对异步信号进行打拍延时,是 Verilog 设计中经常用到的方法。除此之外,为消除竞争冒险,Verilog 编码时还需要注意一些问题,详见下一小节。在编程时多注意以下几点,也可以避免大多数的竞争与冒险问题。...原创 2022-07-01 00:10:14 · 239 阅读 · 1 评论 -
Verilog 状态机
Moore 型状态机Moore 型状态机的输出只与当前状态有关,与当前输入无关。Mealy 型状态机Mealy 型状态机的输出,不仅与当前状态有关,还取决于当前的输入信号。原创 2022-07-01 00:09:35 · 144 阅读 · 0 评论 -
verilog 归约操作符
一、归约操作符包括: 归约与(&),归约与非(~&),归约或(|),归约或非(~|),归约异或(^),归约同或(~^)。二、归约操作符结果 归约操作符只有一个操作数,它对这个向量操作数逐位进行操作,最终产生一个 1bit 结果。三、和其他不同 逻辑操作符、按位操作符和归约操作符都使用相同的符号表示,因此有时候容易混淆。区分这些操作符的关键是分清操作数的数目,和计算结果的规则。1.逻辑操作符主要有 3 个:&&(逻辑与), ||(逻辑或),!(逻辑非)。2.按位操作符原创 2022-06-28 22:44:11 · 6008 阅读 · 0 评论 -
命名块 verilog
命名的块中可以声明局部变量,通过层次名引用的方法对变量进行访问。原创 2022-06-29 23:58:17 · 1261 阅读 · 0 评论 -
Verilog 拼接操作符号
拼接操作符用大括号 {,} 来表示,用于将多个操作数(向量)拼接成新的操作数(向量),信号间用逗号隔开。拼接符操作数必须指定位宽,常数的话也需要指定位宽。例如:A = 4'b1010 ;B = 1'b1 ;Y1 = {B, A[3:2], A[0], 4'h3 }; //结果为Y1='b1100_0011Y2 = {4{B}, 3'd4}; //结果为 Y2=7'b111_1100Y3 = {32{1'b0}}; //结果为 Y3=32h0,常用作寄存器初始化时匹配位宽的赋初值...原创 2022-06-28 23:47:57 · 2592 阅读 · 0 评论 -
Verilog 过程赋值 区别 详解
Verilog 过程赋值 详解原创 2022-06-29 22:11:26 · 662 阅读 · 0 评论 -
verilog 并行块实现
verilog 并行块实现原创 2022-06-29 22:30:27 · 408 阅读 · 0 评论 -
verilog 移位操作符
移位操作符包括左移(),算术左移()。移位操作符是双目操作符,两个操作数分别表示要进行移位的向量信号(操作符左侧)与移动的位数(操作符右侧)。算术左移和逻辑左移时,右边低位会补 0。逻辑右移时,左边高位会补 0;而算术右移时,左边高位会补充符号位,以保证数据缩小后值的正确性。移位有时候还可以代替乘除法。A = 4'b1100 ;B = 4'b0010 ;A = A >> 2 ; //结果为 4'b0011A = A ...原创 2022-06-28 23:49:34 · 5784 阅读 · 0 评论 -
Verilog 避免 Latch
Verilog 避免 Latch原创 2022-07-01 00:28:44 · 762 阅读 · 0 评论