VHDL 不同进制计数器的位宽怎么定?

VHDL语言编写不同进制技术器的位宽怎么定... VHDL语言 编写不同进制技术器的位宽怎么定 展开
 我来答
penguinarbiter
2021-02-11 · TA获得超过186个赞
知道小有建树答主
回答量:183
采纳率:100%
帮助的人:49.1万
展开全部

n 位计数器最多可以表示 2^n 个状态,因此 2^n 进制计数至少需要 n 位位宽

当计数不足 2^n 次时,应向上补足,因此 2^(n-1) + 1 ~ 2^n 都需要 n 位寄存器进行计数;

综上所述,k 进制计数器的位宽为 ceil(log2(k)),ceil 表示向上取整,log2 表示以 2 为底取对数

下面提供对数取整函数的 VHDL 代码:

对数取整函数

FUNCTION logceil(X: INTEGER) RETURN INTEGER IS
-- WARNING: logceil thinks that counters begin at 0.
--     It may be confusing when the parameter is power of 2,
--   such as logceil(16) return 4. (16D = 10000B)
--     If you want to convert integer to unsigned/signed,
--   use to_unsigned/to_signed(i, logceil(i+1)).
BEGIN
ASSERT(X > 0)
REPORT "X: Valid Range [1..]"
SEVERITY ERROR;

FOR I IN 1 TO X LOOP
IF 2**I >= X THEN
RETURN I;
END IF;
END LOOP;
END FUNCTION logceil;

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
上海巴鲁图工程机械科技有限公司_
2022-05-15 广告
增量编码器一般输出信号是两路正交脉冲信号和一路参考信号,之所以叫增量是因为它的位置信号是通过对脉冲计数累加得到,依靠计数设备的内部记忆来记住位置,并且同每圈输出的参考信号来清除累计误差. 缺点就是断电后,需要重新寻找初始位置. 例如打印机扫... 点击进入详情页
本回答由上海巴鲁图工程机械科技有限公司_提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式