首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VHDL:将std_logic接入std_logic_vector信号

VHDL:将std_logic接入std_logic_vector信号
EN

Stack Overflow用户
提问于 2014-02-27 16:13:53
回答 1查看 3.3K关注 0票数 0

我在我的顶级端口声明中定义了几个三状态(inout) std_logic端口引脚。我有一个专用的内部组件,需要利用这些组件,但是它的端口被定义为有一个inout std_logic_vector (不是我的代码,我不能更改),我需要将std_logic连接到一个std_logic_vector中,以使它快乐。

问题是:我不知道该怎么做。

我认为别名是正确的路由,但显然在定义别名时不能使用级联操作符。

然后我想我应该用一个std_logic_vector内部信号:

代码语言:javascript
运行
复制
mySignal <= inOutBit2 & inOutBit1 & inOutBit0; --Input route

componentPort => mySignal, --Component use

inOutBit2 <= mySignal(2);
inOutBit1 <= mySignal(1);
inOutBit0 <= mySignal(0); --Output route

但这不会综合,因为它认为inOutBitn有多个驱动程序。

我能做些什么让它合成吗?我知道我可以声明我的顶级inout端口为std_logic_vector,但这不是最优的,因为我们有一个定义良好的端口标记约定。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-27 17:51:55

根据您的描述,我理解顶级端口和组件端口都是inout模式。

如果是这样,那么如果您将组件端口直接连接到inout级别的外部std_logic端口,则可能会有所帮助,例如:

代码语言:javascript
运行
复制
componentPort(0) => inOutBit0,  --Component use
componentPort(1) => inOutBit1,  --Component use
componentPort(2) => inOutBit2,  --Component use

因此,不需要中间mySignal

但是,描述说,合成报告了inOutBitn的多个驱动程序,但我认为它在原始代码中报告了mySignal的多个驱动程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22074107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档