vhdl - VHDL有三元运算符吗?

标签 vhdl ternary-operator

我喜欢三元运算符与 if 子句的简洁性。

vhdl 中是否存在该运算符?我的搜索结果恰恰相反。我还检查了when语句,但它不是一个运算符,我也希望能够在进程中使用它......

最佳答案

没有。它曾针对 VHDL-2008 进行过讨论,但没有加入。您有几个选择。如果您的工具支持 VHDL-2008,则现在支持将条件赋值作为顺序语句(它们以前只是并发),因此您可以编写如下内容:

process(clock)
begin
  if rising_edge(clock) then
    q <= '0' when reset else d; -- ie. much like q <= reset? '0':d;
  end if;
end process;

如果你还没有 2008,就写一个函数( q <= sel(reset, '0', d) )。不过,您必须为您感兴趣的每种类型编写它。

关于vhdl - VHDL有三元运算符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16112469/

相关文章:

arrays - 如何在 VHDL 中组合输入数据和字符?

vhdl - 如何在 vhdl 中创建包含文件?

vhdl - IS_X函数综合

c++ - 将递增/递减运算符放在三元/条件运算符中是否安全?

dart - 如何在 flutter dart 中使用具有多个条件的三元运算符?

Java三元运算符: is behaviour similar to conditional move possible (assembly) upon ART?

ide - 专业的VHDL IDE?

python - 整数加一和三元运算符

C++:三元运算符中使用的右值引用似乎破坏了现有代码

asynchronous - 错误(10818): Can't infer register because it does not hold its value outside the clock edge