2017-09-20 5 views
1

오류가있는 곳을 찾을 수없는 것처럼 보입니다. 바보 같은 짓을하는 것처럼 느껴집니다.Verilog 구문 오류 [HDL 9-806]

모듈에 대한 테스트 벤치를 생성하려고하는데 구문 오류가 발생합니다. 코드는 다음과 같습니다

module tb_clock_test; 

reg clk, pps_in, rst; 
wire pps_rcvd, pps_out; 
wire [26:0] count; 
int d; 


clk_test uut(
    .core_clk(clk), 
    .pps_in(pps_in), 
    .rst(rst), 
    .pps_rcvd(pps_rcvd), 
    .pps_out(pps_out), 
    .count(count) 
); 

initial begin 
    clk <= 0; 
    pps_in <= 0; 
    rst <= 1; 
    clk = !clk; 
    #8 rst = 0; 
    clk = !clk; 
    #8 rst = 1; 
    clk = !clk; 
    #8 pps_in = 1; 
end 

for (d = 0; d < 250000000; d = d + 1) begin 
    #8 clk = !clk; 
end 
end module 

나는 다음과 같은 오류 받고 있어요 :

'[HDL 9-806] Syntax error near "#". ["tb_clock_test.v":31]'

사람이 도와 줄 수 있습니까?

답변

0

for 루프는 절차 블록 안에 있어야합니다. 오류를 수정하는 한 가지 방법은 다음과 같습니다.

initial begin 
    for (d = 0; d < 250000000; d = d + 1) begin 
     #8 clk = !clk; 
    end 
end 

일단 오류를 수정하면 다른 오류가 발생합니다. 두 개의 개별 키워드 end module을 단일 키워드 endmodule으로 변경하십시오.