Я получаю следующую ошибкуОтдел в Verilog с помощью теста
ВСЕ ПРАВА ЗАЩИЩЕНЫ Эта программа является служебной и конфиденциальной информация Synopsys Inc. и могут быть использованы и раскрываемые только уполномоченным в лицензионного соглашения, контролирующего такое использование и раскрытие.
Предупреждение: Лицензия на продукт vcscompiler_Net (723) истекает в течение 26 дней, o n: 31-dec-2015. Если вы хотите временно отключить это сообщение, установите vcs LIC EXPIRE WARNING environment variab le на за количество дней до истечения срока, в течение которого вы хотите, чтобы это сообщение начиналось с (минимум равен 0). Синтаксический файл проекта '../src/divi .V' error- [SE] Синтаксис ошибки "Этот Verilog источник имеет Синтаксическая ошибка
.../SRC/диви .в", 12: лексема «бит 'reg [4: 0] бит;
Системное ключевое слово «бит» не используется в этом контексте . 1 ошибка времени CPU: .143 секунды компилировать анг-Зв г-0:/класс/Linux/avicente/ASIC_Design/работа>
module streamlined_divider(quotient,remainder,ready,dividend,divider,start,clk);
input [15:0] dividend,divider;
input start, clk;
output [15:0] quotient,remainder;
output ready;
reg [15:0] quotient;
reg [31:0] dividend_copy, divider_copy, diff;
wire [15:0] remainder = dividend_copy[15:0];
reg [4:0] bit;
wire ready = !bit;
initial bit = 0;
always @(posedge clk)
if (ready && start) begin
bit = 16;
quotient = 0;
dividend_copy = {16'd0,dividend};
divider_copy = {1'b0,divider,15'd0};
end else begin
diff = dividend_copy - divider_copy;
quotient = { quotient[14:0], ~diff[31] };
divider_copy = { 1'b0, divider_copy[31:1] };
if (!diff[31]) dividend_copy = diff;
bit = bit - 1;
end
endmodule
module l07_test_div();
wire [15:0] quot, rem;
reg [15:0] shadow_quot, shadow_rem;
reg [15:0] a, b;
integer i;
parameter num_tests = 1000;
reg clk;
initial clk = 0;
always #1 clk = ~clk;
reg start;
wire ready;
wire [15:0] infinity;
assign infinity = 16'hffff;
// simple_divider div(quot,rem,ready,a,b,start,clk);
streamlined_divider div(quot,rem,ready,a,b,start,clk);
initial begin
# 0.5;
while (!ready) #1;
for (i=0; i<num_tests; i=i+1) begin:A
integer shadow_quot, shadow_rem;
a = $random;
b = i & 1 ? $random : $random & 3;
start = 1;
while (ready) #1;
start = 0;
while (!ready) #1;
shadow_quot = b ? a/b : infinity;
shadow_rem = b ? a % b : a;
#1;
if (quot != shadow_quot || rem != shadow_rem) begin
$display("Wrong quot: %h/%h = %h r %h != %h r %h (correct)",
a, b, quot, rem, shadow_quot, shadow_rem);
$stop;
end
end
$display("Tried %d divide tests",num_tests);
$stop;
end
endmodule'
Нужна помощь вычисляя ошибку