如何根据常量的对数设置VHDL语言的矢量大小 [英] How to set VHDL vector size based on the log of a constant

查看:3
本文介绍了如何根据常量的对数设置VHDL语言的矢量大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道$clog2(DATA_WIDTH)对应的VHDL码是什么,例如下面这行:

parameter DATA_OUT_WIDTH = $clog2(DATA_WIDTH)

以及本例中的符号"-:"

if ( Pattern == In[i_count-:PATTERN_WIDTH] )

如果有人能帮我,我将不胜感激。

推荐答案

您可以这样做

constant DATA_OUT_WIDTH : positive := positive(ceil(log2(real(DATA_WIDTH))));

或定义封装该表达式的log2函数。CEIL和Log2可以在MATH_REAL中找到

use ieee.math_real.all;

在VHDL语言中,您只需指定全范围,例如

foo(i_count to i_count + 7)
foo(i_count downto i_count - 7)

不要将in用作标识符,它是VHDL语言中的保留字。

这篇关于如何根据常量的对数设置VHDL语言的矢量大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆