微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 怎么找到一个正数第一个1前面的0的个数

怎么找到一个正数第一个1前面的0的个数

时间:10-02 整理:3721RD 点击:
比如 16‘b0001 1011  0的个数是3,怎么用verilog去描述这个算法呢?

并行判断还是串行判断?有时钟控制吗?如果是并行,用for循环可以实现;如果是串行,移位寄存器可以实现。

没有时钟控制,最好用组合逻辑一个周期完成。

不难吧。就相当于一个译码器而已了。
if (data_in[15])
     cnt = 0;
else if(data_in[14])
    cnt = 1;
...................
else if(data_in[0])
     cnt = 15;
else
     cnt = 16;

ls 正解

用casex

casex直接判断 查表也行

一个有优先级的选择器实现就行。

前导0预判,网上很多这方面资料的,LZ可以学习一下,也可以前导1。主要应用到浮点加减法

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top