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 位更改位置 的相关文章

  • 该浮点数小数部分的前 32 位是多少?

    我正在看以下内容SHA256 伪代码 http en wikipedia org wiki SHA 2 SHA 256 28a SHA 2 variant 29 pseudocode在维基百科上 具体来说 我正在查看以下部分 Initial
  • 如何在C++中输出变量的二进制值

    我的 C 编程课上有一项作业 要求编写一个输出变量值的二进制值的函数 例如 如果我将 a 的值设置为字符 我应该得到 a 输出的二进制值 我的 C 教授并不是全世界最伟大的 而且我在使用他给我们的神秘示例来使我的代码正常工作时遇到了困难 现
  • Postgres 中的按位运算

    我有以下表格 types id name 1 A 2 B 4 C 8 D 16 E 32 F and vendors id name type 1 Alex 2 type B only 2 Bob 5 A C 3 Cheryl 32 F 4
  • 包含按位与 (&) 或按位异或 (^) 的运算是否有等价的十进制?

    考虑以下表达式 其中两个操作数都是十进制 a b or a b 我知道运算符对操作数的二进制数字执行什么操作 因此我知道答案如何 的a b or a b被计算 我不知道这些运算是否可以转换为十进制形式 例如 我们可以说a lt
  • 如何在Verilog中将二维数组中的所有位设置为0?

    我构建了一个 8 2bits 数组来表示 Verilog 中的一块内存 reg 1 0 m 0 7 该存储器有一个复位信号 如果复位为1 则该存储器中的所有位都应重置为0 但是我不知道如何以简洁的方式设置m的所有位 因为如果有数百个内存中有
  • 在 Verilog 程序中使用连续分配?

    在 Verilog 程序中使用连续赋值是否可能和 或有用 例如 是否有任何理由将assign里面一个always堵塞 例如这段代码 always begin assign data in Data end 此外 是否可以用这种方法生成顺序逻
  • 向零舍入到最接近的 0x50 的简短按位方法?

    我正在尝试修补一个旧的 8 位汇编程序例程 它恰好是 M6800 但这并不是真正特定于机器的 以获取 16 位值并向下舍入到最接近的 0x50 dec 80 倍数 当前代码截断为最接近的32只需做一件事AND 0xE0到低字节 这当然会将低
  • 什么时候右移操作>>移位符号位什么时候不呢?

    我的问题是为什么a gt gt 1移位符号位 但不移位 a 0xaaaaaaaa gt gt 1 代码片段 int a 0xaaaaaaaa std cout lt lt sizeof a lt lt std endl getBits a
  • 将位的字符串表示形式转换为字节

    我刚刚开始学习文件压缩 但遇到了一些障碍 我有一个应用程序将诸如 程序 之类的字符串编码为压缩的二进制表示形式 010100111111011000 请注意 这仍然存储为字符串 Encoding g 111 r 10 a 110 p 010
  • verilog 中的案例陈述

    我遇到了优先级编码器设计 并找到了一种使用 case 语句来实现它的新方法 唯一令人困惑的是 case语句是否优先考虑case 例子 case 1 b1 A 3 Y lt 4 b1000 A 2 Y lt 4 b0100 A 1 Y lt
  • 对 Int32 或 UInt32 中的位进行哈希处理的好方法是什么?

    我有一个伪随机数生成器的实现 特别是 George Marsaglia 的 XOR Shift RNG 我的实现在这里 FastRandom cs http sharpneat svn sourceforge net svnroot sha
  • 如果可能的话,如何在 C 中定义 2 位数字?

    对于我的大学过程 我正在模拟一个称为随机顺序吸附的过程 我必须做的一件事是随机地将正方形 不能重叠 放置到格子上 直到没有更多空间为止 重复该过程几次以找到平均 干扰 覆盖率 基本上我正在对一个大的整数数组执行操作 其中存在 3 个可能的值
  • 将零填充到二进制数中特定位置的命令?

    我需要将零填充到二进制数的特定位置 循环二进制数的数组形式 例如dec2bin 43 添加零并调整大小听起来像是轮子的重新发明 如何在Matlab中有效地将零填充到二进制数 Looping positions 1 3 6 x de2bi 4
  • 使用正则表达式进行 Verilog 端口映射

    我有一个很长的端口映射 我想在其中替换一堆 SignalName i with SignalName SignalName i 我想我可以用正则表达式轻松地做到这一点 但我无法弄清楚如何做到这一点 有任何想法吗 假设 SignalData
  • 什么是低位和高位?

    谁能告诉我什么是低位和高位 如何识别高位和低位 下面是二进制形式 如何0110里面有更高位吗 0110 0111 1100 1010 1100 0111 1001 1011 就像十进制一样 二进制中较高位通常写在左侧 所以如果你看到0111
  • 有条件地使用按位运算符

    条件运算符如何使用按位运算符表示 这是一个家庭作业问题 我必须仅使用按位运算来实现条件运算符 那就很简单了 如果if允许使用语句 但它必须是严格的按位运算符 仅运营商 gt gt and lt lt 可以使用 不if可以使用语句或循环 该函
  • Java 中字节数组的位移操作

    如何将字节数组向右移动 n 个位置 例如将 16 字节数组右移 29 个位置 我在某处读到可以使用 long 来完成 会使用这样的长工作 Long k1 0 到 7 的字节数组 Long k2 8 到 15 的字节数组 然后使用 Long
  • 公钥的长度(加密)可以与私钥不同吗?

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

    我正在尝试编写一个无分支函数来返回两个整数的 MAX 或 MIN 而不求助于 if 或 使用通常的技术 https stackoverflow com questions 227383 how do i programmatically r
  • 除法和乘法 2 的幂

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

随机推荐

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

    我正在构建一个网站来学习编码 并尝试构建一个工具 用户可以在其中单击包含从数据库中提取的一些类别名称的选择 下拉菜单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