VHDL:使用输入端口是不好的做法吗?

2023-11-26

我有一个程序,我按照以下方式使用 inout 端口:

port : inout unsigned(9 downto 0);
...
if port > 10 then
   port <= port + 1
end if;

我正在使用 inout 端口,这样我就可以读取输出 (实现反馈).

要么是我和老师之间有误会,要么是我的老师强烈反对使用输入输出端口.

我习惯了高级编程,所以编写这样的代码对我来说并不奇怪。我知道FPGA上带有输入输出端口的电路并不多,但我不经常使用它,将输入输出端口拆分为输入和输出,只是为了获得我想要的功能,这违背了我的感觉,不同的方式。

我会为你感到高兴关于使用输入输出端口的第二种意见.


如果您要实现双向端口,那么 inout 当然是正确的选择!

但是对于读取输出到端口的值,您的老师是对的;这是极其糟糕的做法。 (如果其他东西也在驱动该端口,您将看到解析值而不是您想要的值)。

这就是“缓冲”端口的用途。

不幸的是,对缓冲区端口存在很多奇怪的偏见,并且某些工具在使用它们时会发出不必要的警告(尽管它们通常很好地实现它们!)并且存在一些不必要的奇怪规则将缓冲区端口连接到外部模块中的端口。

我不记得确切的细节,但我相信缓冲端口不能直接连接到下一个级别的输出端口 - 尽管 VHDL-2002 和更新版本删除了这条规则。尽管“缓冲”端口现在更容易使用,但仍然有人不愿意使用它们。

因此,最常见的解决方案是使用内部信号,例如port_int您可以阅读它,以及将其复制到实际端口的简单赋值语句。

因此,VHDL-2008 删除了禁止读取驱动到“输出”端口的值的限制,从而使“输出”端口与“缓冲”端口无法区分。

我的偏好:使用缓冲端口。

如果有某种原因阻止这种情况(比如代码风格指南,或当地流行的观点),那么 (a) 如果您的工具支持 VHDL-2008,请使用“输出”端口,或者 (b) 使用内部信号。

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

VHDL:使用输入端口是不好的做法吗? 的相关文章

  • 如何在 VHDL 中将整数作为十六进制写入标准输出?

    我可以打印一个integer作为十进制到标准输出 library std use std textio all entity min is end min architecture behav of min is begin process
  • 敏感列表中的哪个信号触发该过程

    在VHDL中 当模拟测试平台时 我有一个过程和一个敏感度列表 是否可以查看敏感列表中的哪个信号触发了该过程 我知道这可能取决于工具 我正在使用 Xilinx ISE 模拟器是否提供此信息 您可以使用 transaction属性结合 even
  • 发送带有源端口但不绑定的 UDP 数据包

    我想在 Python 中发送 UDP 数据包并指定源端口但不绑定 与 hping3 等效 hping3 s sourceport p remoteport udp file message bin d 1024 c 1 remoteaddr
  • 如何在 Android 应用程序中使用 3G 互联网连接?

    我制作了一个应用程序 可以连接到我在服务器上运行的程序 但它似乎只适用于 WiFi 当我尝试使用 3G 时 却无法建立连接 为了使用 3G 我必须打开或设置什么特殊功能吗 在应用程序级别 您 通常 不必担心手机可以使用哪些数据连接 您是否研
  • 全8位加法器,非逻辑输出

    我创建了一个带全加器的 8 位加法器 正如您所看到的 我开始从右到左添加相应的位 对于 cin 信号 t1 和 t2 并按顺序 cout t2 和 t1 第一个 cin 设置为加法器输入 cin 我在实现中没有看到任何问题 但是当我运行它时
  • ACTIV HDL - VHDL -“信号无法合成,同步描述错误”

    我在 Xilinx 中综合此代码时遇到错误 这个错误是 信号 Z 1 无法合成 同步描述错误 entity uk3 is port rst in BIT C in INTEGER clk in BIT S out INTEGER end u
  • Maven - java.net.BindException:地址已在使用中

    我正在尝试在 Ubuntu 12 04 中运行以下命令 mvn jetty run 并收到以下错误 2013 09 04 13 21 32 843 WARN failed email protected cdn cgi l email pr
  • 监听附加端口 Microsoft Azure Nodejs

    我正在端口 process env PORT 1337 Microsoft Azure 上的默认端口 上运行 Nodejs 应用程序 Azure Web App 我还需要监听 websocket 的附加端口 在我本地 我使用的是 8000
  • 如何列出 iOS 中开放的端口?

    我正在使用一个 已越狱设备 我想要写一个应用程序列出打开的端口 例如 TCP 端口 我有两个想法 使用一些本机 API 获取打开的端口列表 执行 shell 命令以获取打开的端口列表并解析此 shell 命令的结果 我应该使用哪个 API
  • vhdl中process语句的顺序执行

    对于vhdl中的process语句 据说process语句内部的执行顺序是连续的 我的问题是 请先看下面的代码 a b和c信号在进程语句中的if语句中是同时还是顺序分配给它们的新值 process clk is begin if risin
  • TIdHTTP - Delphi XE 下会话已过期消息

    我正在尝试将我的代码从 Delphi 2007 移植到 Delphi XE 尚未更新 1 我偶然发现的问题是 在 Delphi XE 下 我在发送第二条 GET 消息后从服务器得到不同的响应 格式化 HTML 中的消息表明我的会话已过期 然
  • 如何将 Cocoa/Mac 应用程序移植到 Windows?

    如何将 Cocoa Mac 应用程序移植到 Windows 我的意思是你会怎么做 假设应用程序是用 Objective C 和 Cocoa 编写的 没有什么花哨的事情发生 没有可以分解的 引擎 等等 从头开始重写 我不认为 Mac 和 Wi
  • linux 多端口监听socket

    我正在用 C linux 编写一个多线程服务器应用程序 它必须侦听 2 个不同的端口号 例如侦听端口号 3000 和 4000 以便连接到它的不同客户端提供不同的功能 实际功能由工作人员执行 线程 主线程无限期运行并在新连接上产生新工作线程
  • VHDL FSM多驱动网Q连接到常量驱动程序,其他驱动程序被忽略,我的代码有什么问题?

    这段代码是一个 FSM 它是一个摩尔机 艾莉莎 P 哈克 Alyssa P Hacker 有一只蜗牛 沿着纸带爬下去 上面有 1 和 0 蜗牛 每当最后两个时都会微笑 它爬过的数字是 01 设计摩尔和米利 蜗牛大脑的 FSM 代码如下所示
  • 用几个 1 位 ALU 制作一个 4 位 ALU

    我正在尝试将几个 1 位 ALU 组合成一个 4 位 ALU 我对如何在 VHDL 中实际执行此操作感到困惑 这是我正在使用的 1 位 ALU 的代码 component alu1 define the 1 bit alu componen
  • IIS 进程无法访问正在使用的文件

    我们为服务器创建了 SSL 证书 当我们想要启动 IIS 时 我们收到此错误 该进程无法访问该文件 因为该文件正在被另一个进程使用 端口 443 似乎正在使用中 我该如何解决这个问题 或者我怎样才能知道为什么端口 443 被使用 Marc
  • 为什么使用HTTP协议时需要指定端口号?

    即使我们使用HTTP协议 为什么还需要用IP地址指定端口号 例如 http xyz 8080 这到底是什么意思 我们已经知道 在使用 HTTP 时 请求将在端口 80 上提供服务 那么为什么我们要显式指定端口呢 HTTP 的默认端口为 80
  • VHDL 中的 if 语句

    我有一个关于 VHDL 中 if 语句的问题 请参见下面的示例 signal SEQ bit vector 5 downto 0 signal output bit if SEQ 000001 and CNT RESULT 111111 t
  • windows关闭tomcat后保持端口锁定

    我遇到了一个问题 该问题发生在不同站点的 3 台不同服务器上 问题是 当我关闭 Windows 服务器上的 Tomcat 7 和 8 5 版本 服务并尝试重新启动该服务后 该服务将无法启动 因为 tomcat 认为端口仍在使用中 以下是错误
  • 获取没有非标准端口的原始 url (C#)

    第一个问题 环境 MVC C AppHarbor Problem 我正在调用 openid 提供商 并根据域生成绝对回调 url 在我的本地机器上 如果我点击的话 效果很好http localhost 12345 login Request

随机推荐

  • 键盘出现时更改约束 - Swift

    当键盘出现时 我的 UIView 无法正常移动 UIView中有一个UITextView 我用它来输入文本 如果我选择 TextView 输入文本 键盘会出现 但 UIView 第一次不会移动 如果我点击背景并使键盘消失 然后再次点击 Te
  • 请求 URI 太大 [重复]

    这个问题在这里已经有答案了 遇到一个大错误 GET查询大小约 9 000 个符号 它们分为约 10 个变量 Request URI Too Large The requested URL s length exceeds the capac
  • C#:有什么方法可以跳过多态性中的一个基调用吗?

    class GrandParent public virtual void Foo class Parent GrandParent public override void Foo base Foo Do additional work
  • NJ 的 ML 中的嵌套本地声明

    大家好 我有这段代码 local helper f i j local fun NTimesF f n int if n 1 then fn x gt f x else fn x gt f NTimesF f n 1 x in if i l
  • 禁用 Flask 服务器中的控制台消息

    我有一个以独立模式运行的 Flask 服务器 使用app run 但是 我不想在控制台中显示任何消息 例如 127 0 0 1 15 Feb 2013 10 52 22 GET index html HTTP 1 1 200 如何禁用详细模
  • 没有年份的系统日志时间戳?

    我正在将日志回填到 Elasticsearch 中 因此 为了按时间戳中的日志日期创建索引 我使用date像这样过滤 date locale gt en match gt timestamp MMM d HH mm ss MMM dd HH
  • MySQL 和 Java 是否可以在没有文件(即在内存中)的情况下“加载数据”?

    我正在优化将约 10TB 数据导入 MySQL 数据库的过程 目前 我可以在当前笔记本电脑上在大约 14 分钟内导入 2 9GB 0 8GB 索引 该过程包括读取数据文件 Oracle dat 导出 解析数据 将数据写入 CSV 文件并对其
  • 按位运算还实用吗?

    维基百科是唯一真正的知识来源 它指出 在大多数较旧的微处理器上 按位 操作速度略快于 加法和减法运算 并且通常明显快于 乘法和除法 运营 论现代建筑 情况并非如此 按位 操作大体相同 速度作为加法 尽管仍然更快 比乘法 学习按位运算技巧是否
  • seaborn 散点图绘制的日期多于原始数据中存在的日期

    我的数据集包含 2018 年的数据 我尝试绘制一个简单的散点图 由于某种原因 seaborn 绘制了 2000 年至 2018 年的数据 我还没有找到解决方案 Seaborn lineplot 有效 Matplotlib scatter 也
  • 使用自定义主题配置或扩展 log4net SmtpAppender

    如何为生成的电子邮件主题指定布局和转换模式 BufferSize 需要小于或等于 1 这样就不会发生缓冲 代码项目文章log4net NonBufferedSmtpAppenderWithSubjectLayout看起来很有希望 通过继承所
  • 在 python shell 中像 IDLE 一样在 VSCode 中运行 Python

    我很清楚这个话题如何从 Visual Studio Code 中执行 Python 代码 但它们都没有展示如何使用导入的文件运行 gt gt gt python shell 因为我想单独调用函数 我知道我可以通过简单地输入来启动 pytho
  • Python:如何获取列表中项目的排序数量?

    在 Python 中 我有一个项目列表 例如 mylist a a a a b b b d d d c c e 我想输出类似的内容 a 4 b 3 d 3 c 2 e 1 如何输出列表中项目的计数和排行榜 我不太关心效率 只关心任何有效的方
  • Jenkins - env: ‘node’: 没有这样的文件或目录

    我有一个使用配置的詹金斯服务器https github com shierro jenkins docker examples tree master 05 aws ecs 我正在运行一个蓝色海洋使用简单的 Jenkinsfile 和管道j
  • 检测 Android 上的键盘 IME 语言

    如何检测在 EditText 中输入的内容使用哪种语言 我知道 API 13 有getCurrentInputMethodSubtype 但是旧版本的替代品是什么 空无一人 我什至不指望上述内容适用于所有键盘 我写了一个流行的键盘 但不知道
  • Codeigniter - 使用两个不同数据库的最佳方法

    有人知道在我的应用程序中使用两个不同数据库的最佳实践吗 我需要将数据存储在位于不同位置的两个数据库中 主机 用户名 密码 所有这些都会改变 我计划像往常一样创建模型 并在构造中设置数据库主机 名称 通行证等 我不确定你是否称这是 最好 的方
  • 从函数返回的记录具有串联的列

    我有一个表 用于存储帐户随时间的变化 我需要将其与其他两个表连接起来 以创建特定日期的一些记录 如果这些记录尚不存在 为了让事情变得更简单 我希望 我将返回正确历史数据的查询封装到一个接受帐户 ID 和日期的函数中 如果我执行 Select
  • 使用 GSON 反序列化通用类型

    我在 Android 应用程序 使用 Gson 库 中实现 Json 反序列化时遇到一些问题 我上过这样的课 public class MyJson
  • 二维 np.digitize

    我有二维数据 并且有一堆用 生成的二维箱scipy stats binned statistic 2d 对于每个数据点 我想要它占用的 bin 的索引 这正是np digitize是用于 但据我所知 它只处理一维数据 Thisstackex
  • BeautifulSoup,但是对于CSS?

    BeautifulSoup 解析 HTML 并提供各种在 HTML 中操作和搜索的方法 CSS 有类似的东西吗 具体来说 我想知道给定的 HTML 文本是否呈现为bold 要么它有一个祖先 strong or the strong
  • VHDL:使用输入端口是不好的做法吗?

    我有一个程序 我按照以下方式使用 inout 端口 port inout unsigned 9 downto 0 if port gt 10 then port lt port 1 end if 我正在使用 inout 端口 这样我就可以读