在很多情况下要计算输入输出的位宽,比如你写一个8*8的ram,那么地址需要三位去表示,那么这个函数的方便就体现出来了,你需要使用函数定义就好了。

//位宽计算函数
function integer clogb2 (input integer depth);
beginfor (clogb2=0; depth>0; clogb2=clogb2+1) depth = depth >>1;
end
endfunction

举个栗子

parameter p_cnt_max = p_rev_time*p_clk_fre*1000_000 - 1; //翻转时间内所需计数的最大值
//位宽计算函数
function integer clogb2 (input integer depth);
beginfor (clogb2=0; depth>0; clogb2=clogb2+1) depth = depth >>1;
end
endfunctionwire [clogb2(p_cnt_max)-1:0] w_cnt_max;

以上。

转载于:https://www.cnblogs.com/kingstacker/p/7662364.html

Verilog定义计算位宽的函数clogb2相关推荐

  1. 【方法】Verilog取变量位宽的时候含有变量怎么办

    在Verilog里面,一般用reg来存储字符串.例如要存储4个字符的字符串,变量应该声明为reg [31:0] str.因为每个字符的宽度为8位,4个字符一共32位.最高位为第31位,最低位为第0位. ...

  2. 【Verilog】不同位宽操作数的按位操作

    不同位宽操作数按位与,低位的未定义位会自动补0 ---IEEE Standard for Verilog® Hardware Description Language 例子: 测试代码 module ...

  3. 13,Verilog数据的位宽扩展规则

    通常情况下,我们在实际工程中会遇到数据位宽扩展的问题(比如一个数是4bit,需要扩展为8bit),而且该数据既可能是有符号数,也可能是无符号数,此时我们该如何扩展呢?这就需要用到前面说到的拼接运算符了 ...

  4. Verilog基础:表达式位宽的确定(位宽拓展)

    相关文章 Verilog基础:位宽拓展和有符号数运算的联系 Verilog基础:表达式符号的确定 Verilog基础:数据类型 表达式位宽 如果想要在计算表达式时获得和谐一致的结果,那么控制表达式中的 ...

  5. verilog 常见位宽问题集合

    verilog 常见的位宽问题集合 1. 位宽不等 wire b[31:0]; assign b = 5'b0; 这种错误常见于赋值操作中. 2. 保留最低位 wire b; assign b = 3 ...

  6. IC设计错误案例001:位宽不匹配的错误

    1.位宽不匹配 Verilog编码中,常见的位宽不匹配错误,有赋值左右位宽不匹配(<=,=),比较位宽(>,<,>=,<=)不匹配,计算位宽(+,-)不匹配 位宽不匹配会 ...

  7. MySQL----数据的显示位宽

    问题:在MySQL表中的列可以定义它显示的位宽.那么定义了位宽会不会影响数据的取值范围呢? 测试: 1.定义一个用于测试的表 create table t(x int,y int(2),z int(2 ...

  8. 【Verilog 语法】~ if-else、case、for、generate、函数 function、任务 task、过程块、位宽计算、阻塞/非阻塞、时间尺度、存储器设计、

    文章目录 1. if-else 1.1 设计要点 2. case 2.1 概述 2.2 语法 2.3 注意事项 3. for 3.1 区别与其它语言的for循环 3.2 注意事项 4. generat ...

  9. Verilog设计中如何匹配变量的位宽?($clog2系统函数)

    1.位宽太小 在FPGA设计中,我们经常需要用寄存器来寄存某些"数量类"的变量,比如FIFO的深度啦.或者计数器的最大值啦:又或者输入输出信号也需要将位宽用parameter参数化 ...

最新文章

  1. 为现有的表添加自增列id并赋值
  2. 在一台机器上运行多个ActiveMQ实例
  3. 背景se_盘点那些RPG手游中主角的背景故事,越悲情越强大
  4. 如何获取百度文库中的文章【原创】
  5. DataGrid中間隔色的實現
  6. Linux_OpenSSH远程连接
  7. java基本语法实验体会_实验一 Java 开发环境及基本语法
  8. 不良资产处置(四):国内外不良资产处置公司的背景特点
  9. Vitis中的各类型文件
  10. unity2d自动生成敌人_在Unity 2D中产生敌人
  11. 麻将 java_怎么用java做麻将游戏
  12. 长期听耳机有什么坏处?哪种类型的耳机对耳朵危害小?
  13. 代码实现-pack_padded_sequence()与pad_packed_sequence()
  14. R语言入门-数据分析实操(tyidyverse工作流+代码)
  15. laravel 使用队列进行微信模板消息的群发
  16. Open CASCADE安装及+MFC
  17. 重回南京 - 转自点妈文集
  18. SSL/TLS 双向认证(一) -- SSL/TLS 工作原理
  19. 系统架构的演变过程(单体应用架构、垂直应用架构、分布式SOA架构、微服务架构)
  20. js中valueOf方法的使用

热门文章

  1. Flutter入门三部曲(3) - 数据传递/状态管理 | 掘金技术征文
  2. 数据泄漏防御在企业的应用
  3. Python2.x自学笔记(一)——Json格式与请求
  4. [SOJ] 畅通工程续
  5. SharePoint 2010 同步用户Services 一直Starting 终极解决方案
  6. 最新Butterknife集成 全部方法(完整版)
  7. android:persistent (非系统app失效)
  8. OpenCV实现Mat与vector,Mat与数组互转
  9. java泛型中<?>和<T>有什么区别?
  10. Asp.Net 数据分页