синтаксическая ошибка, неожиданное '=', ожидание IDENTIFIER - PullRequest
0 голосов
/ 28 ноября 2018

Я создаю игру sudoku в verilog (2001), чтобы в конечном итоге поместить ее на FPGA, я нашел код для нее в Java и пытался преобразовать ее, но натолкнулся на некоторые ошибки.Вот ссылка на код Java: www.geeksforgeeks.org/program-sudoku-generator
У меня очень мало опыта в verilog, и я учусь по ходу дела.

task automatic removeKDigits()  
    reg count = K; 
    while (count != 0) 
    begin 
        integer cellId = randomGenerator(N*N-1); 

        // System.out.println(cellId); 
        // extract coordinates i  and j 
         i = (cellId/N); 
         j = cellId%9; 

        // System.out.println(i+" "+j); 
        if (mat[i][j] != 0) 
          begin 
            count = count-1; 
            mat[i][j] = 0; 
          end 
       else
          count=count;
    end 
endtask 

K - количество цифр, которые будут удалены с доски матов [i] [j], N = 9, поскольку это доска судоку 9x9.Для строк, содержащих «count = count-1» и «count = count», я получаю ошибку
синтаксическая ошибка, неожиданный '=', ожидающий IDENTIFIER
что это значит?как мне это исправить?

1 Ответ

0 голосов
/ 29 ноября 2018

К сожалению, маловероятно, что вы сможете портировать java-код в синтезируемый код Verilog, по крайней мере, без приличного знания принципов, лежащих в основе RTL (регистр языков передачи).

Языки программирования, такие как Java, являютсявысокоуровневые описания некоторой логики, которая будет преобразована в машинные инструкции и запущена на процессоре.Они работают последовательно, по одной строке за раз, в определенном порядке. С другой стороны,

RTL описывают фактическое оборудование.Они имеют тенденцию работать параллельно, по триггеру, как правило, на часах.Вместо «переменных» вы склонны работать с «регистрами», представляющими фактические триггеры, и программа Verilog опишет передачу данных между этими регистрами.

Что касается реальных проблем с вашим кодом, это невозможноуказать на ошибки, потому что это просто не Verilog.Я рекомендую этот ответ: https://stackoverflow.com/a/5121853/10719567, для более красноречивого описания различий между языками программирования и RTL и почему портировать между ними не так просто.

...