VHDL 多路复用器实现?
是否可以实现具有多个控制信号的多路复用器?例如,我想做这样的事情:
with (sig1 & sig2) select
output <= A when "00",
B when "01",
C when "10",
D when "11",
'0' when others;
我知道我可以将它们分配给一个新信号并使用它,但这是我想尽可能避免的事情。
Is it possible to implement a mux with multiple control signals? For example, I want to do something like this:
with (sig1 & sig2) select
output <= A when "00",
B when "01",
C when "10",
D when "11",
'0' when others;
I know I could just assign them to a new signal and use that, but that's something I want to avoid if possible.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要在编译器上启用 VHDL2008 模式才能使其工作。
另一种选择(也是 2008 年):
如果您的编译器上没有 VHDL-2008 模式,它将失败
并出现类似的抱怨。
如果您的编译器无法兼容 VHDL-2008,则必须通过创建可用于包围 sig1 和 sig1 的类型来解决此问题。 sig2 明确告诉编译器发生了什么:
然后:
或:
You need to enable VHDL2008 mode on your compiler to have it work.
An alternative (also 2008):
If you have no VHDL-2008 mode on your compiler it will fail with complaints of
or similar.
If your compiler can't be made to be VHDL-2008 compliant, you have to work around this by creating a type that you can use to surround the
sig1 & sig2
to explicitly tell the compiler what's going on:Then:
or:
看看这个也许对你有帮助
See this, maybe it helps you