
verilog
IC小鸽
死磕细节,专注设计,微信公众号icxiaoge
展开
-
verilog语法-009—verilog语法-009 用‘b,‘h,‘d赋值
Verilog 2005 版本支持使用省略位宽的方式赋值,’b,’d,’h,采用省略位宽的方式可以向左主动补齐,如果省略了进制符合b/d/h/o,则默认是十进制。原创 2022-11-20 14:15:23 · 4390 阅读 · 0 评论 -
verilog语法-008—几种可综合的for循环语句
本文讲解了SystemVerilog中可以用于综合的几种for循环设计原创 2022-09-04 17:05:59 · 11086 阅读 · 5 评论 -
IC设计错误案例007:加法溢出导致的错误
1、加法溢出导致的功能错误如下图所示错误代码中,当byte_add+byte_save等于256的时候,我们期望的的信号more_than_64应该为1,而实际上在错误代码中(byte_add+byte_save)与8’d64比较,(byte_add+byte_save)可能会被理解为8’d0,即被理解成8bit信号,more_than_64等于0,功能错误。在芯片设计中,有可能因为EDA工具之间差异导致对(byte_add+byte_save)>8’d64的理解不一样,导致VCS等工具RTL级仿原创 2020-10-24 20:24:46 · 639 阅读 · 0 评论 -
IC设计错误案例001:位宽不匹配的错误
1、位宽不匹配Verilog编码中,常见的位宽不匹配错误,有赋值左右位宽不匹配(<=,=),比较位宽(>,<,>=,<=)不匹配,计算位宽(+,-)不匹配位宽不匹配会导致DC之后的网表与预期差异较大,导致功能不正确,通过spyglass lint检测可以发现所有位宽不匹配的情况,而vcs编译只能发现少数连线位宽不匹配的情况。2、位宽不匹配的危害下文以比...原创 2019-06-22 10:33:51 · 6812 阅读 · 0 评论 -
IC设计高级001:verilog 定位手段
1、Verilog添加定位手段的重要性?Verilog定位手段能够达到以下效果:方便FPGA版本定位、方便样品测试定位、防止他人将无法定位的故障推脱到自己身上。2、添加定位手段的时间?代码中 verilog添加定位手段会增加逻辑资源和面积,所以原则上是越早越好,否则在项目后期布局布线等已经规划好的情况下,会对后端团队造成很大的困扰,导致项目延期。模块代码基本定型后,需要立即添加...原创 2019-06-16 16:56:52 · 786 阅读 · 0 评论 -
verilog语法-006—case、casex、casez
verilog语法-006—case、casex、casez1、使用规则在rtl仿真中,x和z是两个情况,而在综合时被视为一种情况。因此在需要综合的代码中,是不允许出现x和z的。verilog使用规则如下:case 分支中不允许出现x、z、? 可以使用casez,但是不允许使用z和x 禁止使用casex语句2、case 分支中不允许出现x、z、?case语句中出现“x”,“...原创 2019-03-27 19:44:01 · 5177 阅读 · 4 评论 -
verilog质量-001高质量的verilog代码是什么样的?
verilog质量-001高质量的verilog代码是什么样的?1、高质量Verilog代码的几个要素高质量的verilog代码主要包含以下几个要素:可读性、功能、性能、标准化、稳定性、可定位。标准化:iterlaken MAC PCIE 这些模块的设计必须要符合协议标准,能够与其他厂商的产品进行正常对接。可读性:代码是容易阅读,是否容易理解原理。功能:功能是否正确,功能点是否...原创 2019-03-16 20:21:01 · 1951 阅读 · 0 评论 -
Verilog语法-005—宏定义
Verilog语法-005—宏定义1、Verilog宏定义-`ifdef `ifndef`ifdef FOR_FPGA //如果定义了FOR_FPGA宏,则会执行如下语句/或者没有语句`else //如果没有定义FOR_FPGA宏,执行如下语句语句/或者没有语句 `endif //结束`ifndef FOR_FPGA //如果没有...原创 2019-01-27 10:13:30 · 10714 阅读 · 1 评论 -
Verilog代码随笔001
Verilog代码随笔0011、如何快速理清verilog代码数据流找到模块数据输出信号data_out,通过verdi软件trace输出信号data_out,找到信号驱动源,不断的trace,不断找到驱动直到找到模块的输入数据data_in。Data_out和data_in为举例的信号名,实际代码中信号名五花八门,请以实际情况为准。2、多个状态机模块,如何高效编写verilog代码...原创 2019-01-02 20:20:47 · 637 阅读 · 0 评论 -
verilog语法-004 比特位选择
Verilog—比特位选择在有规律的代码,经常会根据输入信号来选择需要的数据。assign output=cfg_assert[tx_client_in*16+:16];表示tx_client_in为0时,outupt= cfg_assert[15:0]表示tx_client_in为1时,outupt= cfg_assert[31:16]在generate模块中还可以采用以下...原创 2018-12-23 17:37:39 · 2404 阅读 · 0 评论 -
verilog语法--003function
function函数调用Function函数结构如下所示function 位宽 name ;Input signal1;Input signal2;逻辑操作,即函数主题endfunction多个输入参数可以使用name(input1,input2)例化Function可以嵌套使用,存在两个函数function_name2、function_name1,在一...原创 2018-12-02 10:16:27 · 408 阅读 · 0 评论 -
verilog语法-002 generate
1、generategenerate语句能够生成有规律的代码,较少语句数量,提高效率。注意事项 :genevar 定义的变量 在同一个模块中不能重复使用,用i、m、n表示,否则综合会报warning 注意格式 genvar 变量名 ;generate for循环 begin:循环体名称 循环内容end endgenerate2、代码实现module data_delay ...原创 2018-11-25 19:20:28 · 1485 阅读 · 0 评论 -
verilog语法-001参数例化
verilog参数例化1、参数定义parametermodule ram_1r1w #( parameter width=128,parameter deepth=32)(input wclk,input [width-1:0] wdin,.....................................input ...原创 2018-11-14 20:01:39 · 5608 阅读 · 0 评论