Почему я получаю синтаксическую ошибку на тестовом стенде? - PullRequest
0 голосов
/ 07 сентября 2018

Это тестовый стенд, который выдает ошибку в строке 12, и я понятия не имею, почему. Я использовал много разных примеров и даже пример профессора, но у меня нет подсказки, почему я получаю синтаксическую ошибку для него.

`include "8adder.v"

module Eadder_tb; // half adder test bench
reg  A, B;   
wire sum, cout; 
E_adder add(a,b,sum,cout); 
initial 
begin 
//Dump results of the simulation to 8adder.vcd
$dumpfile("8adder.vcd");
$dumpvars;
A<= 8’b 10000001; B<= 8’b 00000111; Cin <=0;
A<= 8’b 00011001; B<= 8’b 11000000; Cin <=1;
A<= 8’b 00100001; B<= 8’b 11110000; Cin <=1;
A<= 8’b 00001111; B<= 8’b 11000101; Cin <=1;
A<= 8’b 00000001; B<= 8’b 10001110; Cin <=0;
A<= 8’b 11000001; B<= 8’b 10111000; Cin <=1;
A<= 8’b 00000001; B<= 8’b 11010000; Cin <=0;
A<= 8’b 00010001; B<= 8’b 10000010; Cin <=0;

initial 
begin 
  $monitor("time=%4d: %b + %b: cout = %b, sum = 
b\n",$time,A,B,Cin,cout,sum);   
end 
endmodule 

Нижний код - 8-битный сумматор.

module AddEight(A, B, Cin, Cout, Sum);

output Cout;
output [7:0] Sum;
input Cin;
input [7:0] A, B;

wire c0, c1, c2, c3, c4, c5, c6;

adder A0 (Sum[0], Cin, A[0], B[0], c0);
adder A1 (Sum[1], Cin, A[1], B[1], c1);
adder A2 (Sum[2], Cin, A[2], B[2], c2);
adder A3 (Sum[3], Cin, A[3], B[3], c3);
adder A4 (Sum[4], Cin, A[4], B[4], c4);
adder A5 (Sum[5], Cin, A[5], B[5], c5);
adder A6 (Sum[6], Cin, A[6], B[6], c6);
adder A7 (Sum[7], Cin, A[7], B[7], Cout);

endmodule

module adder(output Sum, input Cin, A, B);
// adder
assign Sum = A ^ B ^ Cin;
assign Cout = (A & B) | (B & Cin) | (A & Cin);

endmodule

1 Ответ

0 голосов
/ 10 сентября 2018

не является символом ASCII; это Unicode для левой апостроф. Вы хотите использовать ' одинарную кавычку / апостроф (без различия слева / справа). Я немного удивлен, что у вас не было аналогичной проблемы с двойными кавычками.

Эта проблема обычно возникает при написании кода в текстовом процессоре (приложения, в которых вы пишете сочинения и электронные письма; и имеют различные варианты форматирования). Эти приложения преобразуют ASCII одинарную кавычку / апостроф в юникод влево / вправо, потому что это более привлекательно для человеческого глаза при чтении. Вы можете написать код в этих приложениях, но вам нужно будет найти и отключить функцию, которая преобразует цитату (также отключите автоматическую заглавную букву и проверку орфографии, пока вы в ней); или не забывайте нажимать клавишу отмены или клавишу выхода при вводе.

Вам следует использовать текстовый редактор или IDE, которые больше подходят для написания кода. Примеры в произвольном порядке: vim, emacs, sublime, Eclipse IDE, MS Notepad. Эти инструменты не будут преобразовывать ваши входные данные ASCII в Unicode. Большинство из этих приложений распознают и сохраняют общие символы Юникода при вставке в них. Вам нужно будет заменить все направленные кавычки Unicode на эквивалентные ascii.

...