随笔分类 - SV for design
学习systemverilog设计
摘要:7.1 新操作符 verilog中循环递增要写成i=i+1,SV开始允许i++,i--,++i,--i,都属于阻塞赋值,在时序逻辑中慎用,容易出下竞争。 在时序和锁存逻辑块中,如果变量不会被过程块外部语句读取,则可以使用++,--操作符 i++; //可综合 if(--i); //不可综合 sum
阅读全文
摘要:6.1 verilog通用目的always过程块 always begin wait(reset_n == 0) //电平敏感的延迟 @(negedge clock) //边沿敏感的延迟 #2 t <= d ; //基于时间的延迟 @(posedge clock) #1.5 q <= t ; end
阅读全文
摘要:数组、结构体和联合结构体 结构体 结构体是对一些相关信号进行分组的最方便办法。 struct{ int a,b ; opcode_t opcode ; logic [23:0] address ; bit error ; }instruction_word; assign instruction_w
阅读全文
摘要:用户自定义和枚举数据类型 用户自定义数据类型在保证正确性和可综合性的前提下,允许在更高的抽象级上进行复杂的设计。 用户自定义数据类型 typedef int unsigned unit ; unit a,b ;//自定义的32位无符号整数 typedef定义位置 模块内部:只有这个模块能访问,其他模
阅读全文
摘要:文本值和数据类型 文本赋值增强 parameter SIZE=64; reg [SIZE-1:0] data ; data = 0; data = 'bz ; data = 'bx ; verilog可以为变量赋全0,全z和全x,但对赋全1很不方便。只能写成如下形式 assign data = 16
阅读全文
摘要:包的使用 package definitions; parameter VERSION="1.1" ; typedef enum{ADD,SUB,MUL} opcodes_t; typedef struct{ logic [31:0] a,b; opcodes_t opcode }instructi
阅读全文