2015-06-19 52 views
0

我想在Verilog中製作一個2x1多路複用器,每個輸入實際上在技術上都是2個輸入,輸出也是一樣。但是,它仍然像2x1多路複用器。我的代碼如下所示:複用器實現

module mux              
(
    output [11:0] out_0, 
    output [11:0] out_1, 
    input sel, 
    input [11:0] in_a_i, 
    input [11:0] in_b_i, 
    input [11:0] in_a_q,    
    input [11:0] in_b_q 
)      
    assign out_0 = (sel) ? in_a_i : in_b_i;    
    assign out_1 = (sel) ? in_a_q : in_b_q;       
endmodule 

當我嘗試然而,賽靈思建立這個,我給出的是如此有用的錯誤:

Syntax error near "assign"

我不明白這有什麼錯的分配線,我只是想念一些簡單的東西?

+2

您應該有2個該模塊的實例,但只有1個輸出和一組輸入。 – toolic

+0

我現在擁有它的方式會導致合成錯誤嗎?是多個更好的慣例/性能的兩個實例?我來自C++/Java背景,所以我在這個模塊上運行,解決了所有的想法。 – Jpwang

回答

1

聲明module後缺少分號(;)。

module mux 
(
    output [11:0] out_0, 
    output [11:0] out_1, 
    input sel, 
    input [11:0] in_a_i, 
    input [11:0] in_b_i, 
    input [11:0] in_a_q,    
    input [11:0] in_b_q 
) ;