我已經爲檢測特定序列的Mealy狀態機器定義了一個模塊。我還沒有將狀態編碼爲通常更好的選擇,因爲我想以另一種方式來做(我在書中看到了一個類似的例子,但代碼是在VHDL中)。Mealy序列檢測器中的「無效模塊實例化」錯誤 - Verilog
module seq_detector(y_out,Clk,x_in);
output y_out;
reg y_out;
input x_in, Clk;
reg Q1,Q2,Q3,Q4;
always @(posedge Clk)
Q1 <= (Q1&&(!Q3))||((!Q1)&&Q2;&&(!Q3)&&(!Q4)&&(x_in));
Q2 <= ((!Q3)&&Q4;&&(!x_in))||(Q1&&Q2;&&(!Q3)&&(!Q4)&&x_in);
Q3 <= Q1&&Q2;&&(!Q3)&&(x_in);
Q4 <= (Q1&&Q2;&&(x_in))||(Q1&&(!Q4)&&(!x_in))||((!Q1)&&(!Q2)&&(Q4)&&(!x_in))||((!Q1)&&(!Q2)&&(x_in))||((!Q1)&&(!Q3)&&Q4;&&x_in)||(Q1&&Q2;&&(!Q4)&&x_in);
always @(x_in or Q1 or Q2 or Q3 or Q4)
y_out <= Q3||(Q2&&(!Q4)&&x_in);
endmodule
在編譯代碼時,出現以下錯誤。
mini_project.v:8: syntax error
mini_project.v:8: error: Invalid module instantiation
mini_project.v:9: error: Invalid module instantiation
mini_project.v:10: error: Invalid module instantiation
我不能弄出任何錯誤信息。有人可以解釋錯誤信息,並建議如何糾正它?
啊!我不知道。代碼現在完美編譯。謝謝 ! 關於附註,我完全同意你的觀點(我可能會在你的句子中增加幾個額外的真值),但我是Verilog的新手,並且想直接從狀態方程編碼並驗證我得到的是相同的通常的方法和這一個輸出。 – progophilic