Эта программа находится в Dataflow Verilog.Я пытаюсь сделать сумматор и вычитатель зависимыми от селектора.В настоящее время я получаю некоторые ошибки, такие как «синтаксическая ошибка в непрерывном назначении» для строки 10 (assign {cout ...},) или «Ошибка запуска EPWave: [Не удалось проанализировать файл: $ timescale не найден в заголовке».]. Не удалось загрузить './dataflow_hw_1.vcd' ".
Я просмотрел весь Интернет в поисках решения этой проблемы, но я продолжаю пытаться рекомендовать решения безрезультатно.Я не знаю, что не так при попытке тестового стенда.
Вот код:
module dataflow_1 (a[7:0],b[7:0],out[7:0],cout);
input a,b;
output out,cout;
//if a have odd number of 1s, output = a + b
//else if even positions have even number of 1s in total, output = a-b
assign selectorOdd = (a[1]^ a[3]^ a[5] ^ a[7]);
assign selectorEven = (~selectorOdd & ~(a[0] ^ a[2] ^ a[4] ^ a[6]));
assign {cout,out[7:0]} = (selectorOdd & ({a[7:0] + b[7:0}) | (selectorEven & ({a[7:0] - b[7:0]}));
endmodule
Вот код тестового стенда:
// Code your testbench here
module dataflow_1();
reg [7:0] a;
reg [7:0] b;
wire [7:0] out;
dataflow_1 test(
.a(a),
.b(b),
.out(out)
);
initial begin
$dumpfile("dump.vcd");
$dumpvars(0, out);
a = 8'b01010101;
b = 8'b00000001;
#100;
end
endmodule