Мультиплексор 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