8 x 1 мултиплексор във verilog, синтактична грешка 10170

Опитвам се да създам 8 x 1 мултиплексор във Verilog. Когато стартирам анализ и синтез на кода, продължавам да получавам грешка. Ето моят код:

// 8 x 1 line multiplexer
module KuchtaClayton_HW7_P6(output  Y, input [2:0] S, input [7:0] I);

    assign Y = (S ==3’b000) ? I[0] :
               (S ==3’b001) ? I[1] :    
               (S ==3’b010) ? I[2] :    
               (S ==3’b011) ? I[3] : 
               (S ==3’b100) ? I[4] :
               (S ==3’b101) ? I[5] :
               (S ==3’b110) ? I[6] :
               (S ==3’b111) ? I[7] : 1’bx;
endmodule

Ето съобщението за грешка:

Грешка (10170): Синтактична грешка на Verilog HDL при KuchtaClayton_HW7_P6.v(6) близо до текст "â"; очаквам ")"

Има 21 грешки, които по същество са еднакви, някои изглеждат така:

Грешка (10170): Синтактична грешка на Verilog HDL в KuchtaClayton_HW7_P6.v(6) близо до текст â
Грешка (10170): Синтактична грешка на Verilog HDL в KuchtaClayton_HW7_P6.v(6) близо до текст

Щраквам два пъти върху тях и те ме отвеждат до всеки ред за присвояване за Y 3 пъти. Предполагам, че направих три грешки във всеки булев израз? Какво правя грешно в заданието? Използвам Quartus II като моя програма.


person user1334858    schedule 19.10.2012    source източник
comment
Кой симулатор (или инструмент за синтез) използвате?   -  person Marty    schedule 20.10.2012


Отговори (1)


Мога само да предполагам как, за бога, се оказахте с символ в кода си, тъй като не е толкова лесно да въвеждате (т.е. на Mac трябва да задържите Shift+Option+]). Във всеки случай този знак е Unicode 0xE28099 и не е законен Verilog код. От вас се очаква да използвате ASCII символ ', който е 0x07 (вижте таблица с ASCII знаци ).

Освен това синтаксисът ви е наред. Единственото предложение е да не използвате 1'bx там, защото с 3 бита можете да представите до 8 числа (от 0 до 7) и по този начин имате пълен регистър, така че да може да се използва следният код:

assign Y = (S == 3'd0) ? I[0] :
           (S == 3'd1) ? I[1] :
           (S == 3'd2) ? I[2] :
           (S == 3'd3) ? I[3] :
           (S == 3'd4) ? I[4] :
           (S == 3'd5) ? I[5] :
           (S == 3'd6) ? I[6] : I[7];
person Community    schedule 20.10.2012
comment
Съгласен. Предполагам, че има проблем с кодирането на текста, особено след като в съобщението за грешка има знак с ударение: near text "â";? - person Marty; 20.10.2012
comment
Това беше шаблон за работа. Значи трябва да са го сложили. Благодаря! - person user1334858; 20.10.2012
comment
Изрязахте ли и поставихте от PDF? Това е почти гарантирано, че ще получите странни герои. - person Paul S; 22.10.2012