Verilog 位更改位置

2023-11-30

假设我有一个寄存器reg [15:0] my_reg,其中包含一个16位signed sample:

如何找到第一位变化的位置? 意思是,如果假设my_reg = 16'b0001011011010111,我怎么知道第一个变化是0 to 1 is at my_reg [12]?对于以以下开头的数字也是如此1,负数,例如my_reg = 16'b1111011011010111对第一个出现的位置感兴趣0(这是11在这种情况下)。

最终目标(添加一点上下文)是实现数字 FPGA 内置自动增益控制 (AGC)。


与上述相同的技术,但已参数化。使用 XOR 移位一位来确定位变化的位置,然后使用降序优先级编码器输出第一个 换地点。我塞满了my_reg[0]所以第一位不会创建增量。

localparam width=16;

reg  [width-1:0] my_reg;
wire [width:0] delta;
reg  [$clog2(width)-1:0] index; // Note: $clog2 was added in IEEE1364-2005
integer i;

assign delta = my_reg ^ { my_reg, my_reg[0] };

always @* begin
  index = 0;
  for (i=0; i<width; i=i+1)
    if (delta[i])
      index = i;
end

以上代码位于 EDA 游乐场(顺便说一句,感谢您对此的提醒)http://www.edaplayground.com/x/3uP

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Verilog 位更改位置 的相关文章

  • 在 C++ 中求和 1<<2 和 1<<3 时出现奇怪的输出

    所以我只是尝试用 C 进行一些位操作 这是我尝试过的 int a 1 lt lt 2 cout lt
  • 位运算 (C++)

    最近面试时遇到一个问题 我被要求比较按位运算的性能 比如 简单描述一下不同位操作的性能 我想这个问题可能非常普遍并且非常特定于机器 但我也认为应该有一些关于这个的一般规则 你必须提到 我没有 那么 你会回答什么 我可能还应该说 比较它们在
  • 有条件地使用按位运算符

    条件运算符如何使用按位运算符表示 这是一个家庭作业问题 我必须仅使用按位运算来实现条件运算符 那就很简单了 如果if允许使用语句 但它必须是严格的按位运算符 仅运营商 gt gt and lt lt 可以使用 不if可以使用语句或循环 该函
  • 公钥的长度(加密)可以与私钥不同吗?

    我有一个 1024 位的私钥 并用它来生成公钥 这是否自动意味着我的公钥也具有 1024 加密 或者它的加密大小可以更小吗 512 256 PS 我最感兴趣并谈论的是 RSA 密钥中模数 n 的大小 大小通常为 1024 或 2048 位
  • 删除最低位

    给定一个二进制数 删除最低位的最快方法是什么 01001001010 gt 01001001000 它将在代码中用于迭代变量的位 伪代码如下 while bits 0 index getIndexOfLowestOrderBit bits
  • c++ - 将“std::vector”的内容保存到文件

    我使用 writeFileBytes 下面的函数来写入a的内容std vector
  • 如何看待Python的负数按位运算?

    我发现很难思考 Python 和 Python3 的无限精度负数和按位运算 它不是 32 位或 64 位 这1左边的 s 可以被认为是 无穷多个 它不是很明确 这就是为什么有时很难思考它是如何运作的 似乎一种可行的方法是 总是让它更多 例如
  • Verilog 数组语法

    我是 Verilog 新手 并且遇到了很多麻烦 例如 我想要一个包含八个单元的数组 每个单元都是 8 位宽 以下不起作用 reg 7 0 transitionTable 0 7 assign transitionTable 0 10 仅仅做
  • 使用按位 OR 0 对数字进行取整

    我的一位同事偶然发现了一种使用按位或来对浮点数进行底数的方法 var a 13 6 0 a 13 我们正在谈论它并想知道一些事情 它是如何工作的 我们的理论是 使用这样的运算符将数字转换为整数 从而删除小数部分 与这样做相比 它有什么优势吗
  • 除法和乘法 2 的幂

    我在一篇论文中读到 数字除以 2 的幂并乘以 2 的幂是一个微不足道的过程 我在互联网上搜索了很多解释 但没有得到它 任何人都可以用简单的语言解释一下这实际上意味着什么 从位操作的角度来看 这是微不足道的 乘以2相当于左移1位 除法相当于右
  • 以 O(1) 计算汉明权重 [重复]

    这个问题在这里已经有答案了 在二进制表示中 汉明权重是 1 的数量 我偶然发现了网络并找到了一个 O 1 的答案 v v v gt gt 1 0x55555555 v v 0x33333333 v gt gt 2 0x33333333 in
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 使用位操作查找字符串中的重复项时出现问题

    我认为 我已经实现了正确的逻辑来查找字符串是否包含重复项 但即使在终端中没有打印任何内容 我也无法理解为什么会这样 那么我在这个程序中犯了哪些错误 任何人都可以解释为什么它不起作用 include
  • 按位运算符简单地翻转整数中的所有位?

    我必须翻转整数的二进制表示形式中的所有位 鉴于 10101 输出应该是 01010 当与整数一起使用时 完成此操作的按位运算符是什么 例如 如果我正在编写类似的方法int flipBits int n 什么会进入身体 我只需要翻转数字中已经
  • 在设置/重置位方面,“分支”意味着什么?

    在一次采访中 我被问到 你如何设置或重置一点 这是一个很简单的问题 我也回答了 之后 他们问我如何做同样的事情 但不分支 我不知道什么是分支 我搜索并发现位摆弄黑客 http graphics stanford edu 7Eseander
  • 为什么 n 按位和 -n 总是返回最右边的位(最后一位)

    这是Python代码片段 1 1 1 2 2 2 3 3 1 看来任何n n总是返回最右边 最后 位 我真的不知道为什么 有人可以帮助我理解这一点吗 这是由于负数以二进制表示的方式 称为二进制补码表示 创建某个数字 n 的补码 换句话说 创
  • 负整数的Python表示

    gt gt gt x 4 gt gt gt print b format x x 4 100 gt gt gt mask 0xFFFFFFFF gt gt gt print b format x mask x mask 4294967292
  • 从测试台访问子模块中的输入和输出

    我的被 测设备 DUT 有许多子模块 我想测试其中的一些 我的测试夹具将是我的项目的顶层 比 DUT 高一级 并且由于我似乎只能访问下一层模块的输入和输出 所以我只能访问顶层的输入和输出被测设备 我希望能够从测试夹具下方的两层或多层模块访问
  • 我的 Bitset 的大小是多少?

    我想存储System currentTimeInMillis以尽可能小的空间存储在内存中 因为我必须将数百万个它们存储在内存中 我把它转换为binaryString这给了我41 bits 这是我的程序 public class BitSet
  • 修改verilog模式缩进

    我试图让 verilog 模式使用 2 个空格缩进除 decls 和always 之外的所有内容 这是我添加到 emacs 中的内容 define are not indented setq veril

随机推荐

  • 根据下拉列表选择从数据库填充另一个选择下拉列表

    我正在构建一个网站来学习编码 并尝试构建一个工具 用户可以在其中单击包含从数据库中提取的一些类别名称的选择 下拉菜单cat然后将出现另一个选择 其中包含从数据库中提取的子类别名称subcat 这几乎和 Yelp 的一模一样 进入类别 就像
  • 加载多种消息类型的设计模式

    当我浏览时 我遇到了一个关于处理多种消息类型 我关心的是 如何以简洁的方式加载这样的消息 我决定创建一个单独的类 其中的方法每次调用时都会加载一条消息 此方法应创建具体消息类型 例如 AlphaMessage BetaMessage Gam
  • C 编译器错误中的“需要左值”是什么意思? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 include
  • 如何在代码中配置我的Windows服务来访问桌面?

    我创建了一个Windows服务 我想从该服务打开一些基于 Windows 的应用程序 但我的 Windows 服务无法启动桌面应用程序 要启用访问权限 我必须执行以下步骤 打开管理工具 服务 右键单击我的服务并选择 属性 然后在 登录 选项
  • 如何使 clang 编译为 llvm IR

    我希望 clang 将我的 C C 代码编译为 LLVM 位代码而不是二进制可执行文件 我怎样才能做到这一点 如果我有 LLVM 位代码 如何进一步将其编译为二进制可执行文件 我想在编译为二进制可执行文件之前将一些我自己的代码添加到 LLV
  • 为什么 print_r 和 var_dump 在 echo 之前执行

    我正在打电话var dump or print r 在一个具有一个值的数组上echo陈述 echo br br testArray is gt var dump testArray lt br br 这是浏览器中的实际输出 array 0
  • Python 2 和 3 之间 numpy 数组的 Pickle 不兼容性

    我正在尝试加载链接的 MNIST 数据集here在 Python 3 2 中使用此程序 import pickle import gzip import numpy with gzip open mnist pkl gz rb as f l
  • Bash 脚本中的字符串连接

    我正在编写这个 Bash 脚本 count 0 result for d in ls 1 IMAGE DIR egrep jpg do if count 4 0 then result abc d if count gt 0 then ec
  • Foundation5 与 Symfony2 中的 Compass 和 Assetic

    我想在 Symfony2 中使用 Compass 和 Assetic 配置 Foundation5 我已经按照他们的说法安装了 Foundationhttp foundation zurb com docs sass html npm in
  • 组合来自名称向量的数据帧

    我有一个我认为很容易解决的问题 但我没有找到解决方案 我有大量的数据框想要按行绑定 为了避免列出所有数据框的名称 我使用 paste0 快速创建数据框名称的向量 问题是我无法使 rbind 函数从该名称向量中识别数据帧 更明确地说 df1
  • 如何在一张图片中找到另一张图片?

    我有 2 张 bmp 图像 ImageA 是屏幕截图 示例 ImageB 是其中的一个子集 举个例子 一个图标 我想找到图像中图像的 X Y 坐标 如果存在 知道我会怎么做吗 这是一个快速示例 但速度很慢 大约需要 4 6 秒 但它完全符合
  • jQuery滑块“slide”事件:如何确定用户的滑动方向?

    我一直在剖析 firebug 中的事件和 ui 对象 但它似乎没有任何我可以使用的东西 我错过了什么吗 我想我可以跟踪价值的变化 但这似乎是一个拼凑 selector slider slide function event ui I nee
  • C++ iptables 重定向形成单独的数据包

    我使用以下命令将端口 50 的所有流量重定向到 5050 iptables t nat A POSTROUTING p udp dport 50 j REDIRECT to port 5050 我在 5050 上使用 RAW 套接字进行监听
  • 如何在Python中轻轻地打乱列表

    我遇到这个问题 我想对列表进行洗牌 但只能稍微做一些 比如说 我只想移动少量元素 有没有一种简单的方法可以完成这项工作 现在我能想到的最好的方法是手动构建我自己的方法 但是有什么方法可以使用random图书馆为我做这个 为了展示其中一些解决
  • 通过 Python 使用 PasteExcelTable 将 Excel 数据复制到 Outlook 电子邮件的正文

    将格式化的 Excel 范围复制到 Word 文件 这会从 Excel 复制一系列单元格并将其粘贴到 Word 文档中并保留格式 该代码适用于此 但是 我还想将数据粘贴到带有单元格样式的电子邮件正文中 import sys from pat
  • 如何安装 PyAutoGUI

    我正在运行 OS X El Capitan v 10 11 3 我正在尝试安装 PyAutoGUI 在终端上 我成功执行了以下操作 sudo pip3 install pyobjc core sudo pip3 install pyobjc
  • 如何在magento中创建依赖属性

    在magento中有什么方法可以创建依赖属性 例如颜色取决于尺寸和尺寸取决于制造商 让我假设您通过简单地表达属性来表示产品属性 要回答您的问题 不可能在 管理属性 下直接或直接创建依赖产品属性 但是您可以通过创建可配置产品来使属性相互依赖
  • 在symfony中显示存储在BLOB数据库中的图像

    我在 GETer 实体中加载图像 blob 数据 当我在 GETer 中返回 this gt foto 时 我在屏幕上看到 Resource id 284 当我像这样更改 GETer 时 return stream get contents
  • IPv6 组播示例

    我搜索了如何实现简单 ipv6 多播示例的示例 但是我只找到了使用 ipv4 的示例 谁能提供一个简单的 ipv6 多播 helloworld 示例 这是一个简单的客户端服务器示例 顺便说一句 在网络上的多台计算机上运行它将使所有计算机相互
  • Verilog 位更改位置

    假设我有一个寄存器reg 15 0 my reg 其中包含一个16位signed sample 如何找到第一位变化的位置 意思是 如果假设my reg 16 b0001011011010111 我怎么知道第一个变化是0 to 1 is at