我在verilog开始,我很困惑的真值表,我如何在verilog中使用“if-else”,我的老师给我们介绍了以下的例子:
看完之后,我们要做以下练习:
我很困惑,我想要的是一个简短的解释,如果可能的话,一个如何解决它的简单例子,我不希望你解决我的任务,但帮助我理解它,提前谢谢。
作为旁注,我使用的是Quartus prime 20.1
我在verilog开始,我很困惑的真值表,我如何在verilog中使用“if-else”,我的老师给我们介绍了以下的例子:
看完之后,我们要做以下练习:
我很困惑,我想要的是一个简短的解释,如果可能的话,一个如何解决它的简单例子,我不希望你解决我的任务,但帮助我理解它,提前谢谢。
作为旁注,我使用的是Quartus prime 20.1
VHDL与verilog沉淀大约在同一时间,即20世纪80年代初,由完全不同的演员无中生有,但事后看来,原因类似。他们的目的更多的是记录数字ASIC和/或逻辑系统,而不是其他。不久,尝试模拟它们的想法就出现了(一年或两年后)。直到后来,FPGA或晶圆掩模的自动合成才出现。Digilent有这是关于verilog历史的参考资料.有必要略读一下,了解一下背景。
为了简单起见,主要有两种总是@块:组合和顺序。你可以很容易地分辨出哪个是哪个,只要注意关键字\$posedge\$或\ negedge \美元作为副词出现在敏感性列表中。如果是,那么它是顺序逻辑(可能带有某种异步事件)。如果不是,那就是组合。
敏感性列表告诉模拟器(或合成器)在进行封闭的块行为描述之前要检查什么。对组合代码。
mux是一种组合逻辑,所以如果你看敏感度列表,你应该不期待看到总是@敏感性列表显示\$posedge\$或\ negedge \美元.和你不。这是一件好事。通常,在组合逻辑的情况下,你会看到always@ (*)而不是一个具体的列表。至少在刚开始的时候,这样做可能更安全。它只是意味着“如果有任何变化”,应该考虑并重新评估块。(它会为你推断敏感性列表。)这通常是你想要的。但您也可以很迂腐,只列出影响块的特定输入。由你决定。
由于您正在研究组合问题,我将避免讨论您所看到的情况\$posedge\$或\ negedge \美元出现在敏感名单上。
现在,在您的例子中,您有两个选择位(可以说是2位导线)和四个输出位(表示为4位导线)。您应该能够为包含总是@声明。你知道如何指定多位线吗?您能讨论一下,当两个选择位中的任何一个发生变化时,您将如何编写描述所需行为的块吗?只要用英语(请不要用西班牙语)写出来,就好像你在试图描述它一样。单凭这一点就能让你离目标很近了。