2013-07-24 2 views
0

Моя цель - написать тестовое устройство, которое считывает шестнадцатеричные значения из входного файла и отображает его на экране. Я использую код ниже, но я получаю синтаксическую ошибку в строке «$ display («% d:% h », j, srcPacketIn [j]);». Точная ошибка:

** Ошибка: C: \ альтервитальных \ 13,0 \ test.v (32): около "$ дисплей": ошибка синтаксиса, неожиданный SYSTEM_IDENTIFIER

Может кто-нибудь, пожалуйста, помогите мне?

module test_fixtures; 
parameter TestCycles = 12; 
parameter ClockPeriod = 10; 


reg [7:0] srcPacketIn [0:(5*TestCycles)-1]; 

reg clock, reset; 
genvar j; 


initial 
    begin 
     $readmemh("input.h",srcPacketIn); 
    end 
initial 
    begin 
     reset = 0; 
     clock = 1; 
    end 

always #ClockPeriod clock = ~clock; 



     for (j=0; j < 59; j=j+1) 
      begin 
      $display ("%d:%h",j,srcPacketIn[j]); 
     end 
endmodule 
+0

Как ни странно, когда я использую всегда #

+1

Для петель должны быть внутри процедурного блока (всегда/начальный/и т.д.). Вы просто не копировали эту часть? – Tim

+0

Большое спасибо .. Это была ошибка .. – user2349990

ответ

0

Код работает в Icarus Verilog 0.9.6 с изменениями ниже.
Compile/сим результаты здесь: EDA Playground

module test_fixtures; 
parameter TestCycles = 12; 
parameter ClockPeriod = 10; 


reg [7:0] srcPacketIn [0:(5*TestCycles)-1]; 

reg clock, reset; 
integer j; // <-- CHANGED 


initial 
    begin 
     $readmemh("input.h",srcPacketIn); 
    end 
initial 
    begin 
     reset = 0; 
     clock = 1; 
    end 

always #ClockPeriod clock = ~clock; 

initial begin // <-- ADDED 
     for (j=0; j < 59; j=j+1) 
      begin 
      $display ("%d:%h",j,srcPacketIn[j]); 
     end 
     end // <-- ADDED 
endmodule 
Смежные вопросы