2017-08-08 121 views
0

我一直在理解一些Verilog代碼,我試圖重寫。特別是這一行:? Verilog中的語句

assign x = (y) ? a | b | c : 1'b0; 

我認爲這是一個if語句,但我仍然不能完全肯定它是如何工作,所以任何幫助翻譯將是巨大的!

+0

查看此代碼[歡迎的StackOverflow](https://stackoverflow.com/tour)。請閱讀我們的[問]頁面提示如何改善您的 問題。好的問題往往會從社區中產生更快,更好的答案。 – ochi

回答

1

這是三元運算符與其他編程語言類似的語義。它可以大致被認爲是一個if statment:

if (y) 
    x = a | b | c; 
else 
    x = 1'b0; 

雖然Verilog的是不是一個確切的替代,因爲它也是在「X的存在確實的特定功能。

0

這實際上是一個if-else語句來實現一個多路複用器。可以按如下方式

How this would synthesize