Error malformed statement

Hi i am using the folowing code to design a n-bit counter. Depending on the start and end i want to instantiate up or down counter. But i am getting "Malformed statement". Please help. module

Hi i am using the folowing code to design a n-bit counter.
Depending on the start and end i want to instantiate up or down counter.

But i am getting «Malformed statement». Please help.

module nbitUpCounter(startc,endc , clk, rst_n,actlow,count);
parameter n = 7;

    output reg [n:0] count;
    input  [n:0] startc;
    input  [n:0] endc;
    input clk;
    input rst_n;
    input actlow;

    // Increment count on clock
    always @(actlow or posedge clk or negedge rst_n)
    begin
       if (actlow == 0)
       begin
           if (rst_n==0) 
          count = startc;
       else if (count==endc) count=startc;
           else count = count + 1;
       end
    end
endmodule

module nbitDownCounter(startc,endc , clk, rst_n,actlow,count);

parameter n = 7;

    output reg [n:0] count;
    input  [n:0] startc;
    input  [n:0] endc;
    input clk;
    input rst_n;
    input actlow;

    // Increment count on clock
    always @(actlow or posedge clk or negedge rst_n)
    begin
       if (actlow == 0)
       begin
           if (rst_n==0) 
          count = startc;
       else if (count==endc) count=startc;
           else count = count - 1;
       end
    end
endmodule

module Init(startc,endc , clk, rst_n,actlow,count);
parameter n = 7;

    output wire [n:0] count;
    input  [n:0] startc;
    input  [n:0] endc;
    input clk;
    input rst_n;
    input actlow;
generate
    initial
    begin
        if(startc>endc)
        nbitDownCounter c(startc, endc, C_t,rst_t,actlow,count);
    end
endgenerate
endmodule

module Testbench;

    reg [7:0] startc, endc;
    reg C_t, rst_t;
    reg actlow;
    wire [7:0] outc;

    initial
    begin

    //case 0
    startc <= 8'b00000011; endc <= 8'b0000001;
    //Init i(startc,endc,C_t,rst_t,actlow,count);
    actlow<=0;
    C_t <=1; rst_t <=0;
    #1 $display("count = %b",outc );
    //case1

    rst_t<=1;C_t<=0;C_t<=1;
    #1 $display("count = %b",outc );

    //Case3
    C_t<=0;C_t<=1;
    #1 $display("count = %b",outc );
    //Case3
    C_t<=0;C_t<=1;
    #1 $display("count = %b",outc );
    end
endmodule

I have a bunch of different implementation of mux (wrong/correct) that I am evaluating. However I keep getting this error for some of the programs.

./mux.sv:4: error: malformed statement

Below is a snippet of some of these programs.

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d5;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d0;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a0 ? d7 : d5);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a2 ? d4 : d2);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d5;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a1 ? d0 : (a1 ? d2 : (a2 ? d5 : d7)));

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d2;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a2 ? d2 : d3);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a2 ? d5 : d6);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d3;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d1;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d3;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d6;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d0;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d0;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d5;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d1;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d3;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d5;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a0 ? d3 : d3);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d1;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a1 ? d5 : d2);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d6;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a1 ? d4 : (a0 ? d2 : d2));

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d5;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d4;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d2;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d7;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d6;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d5;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d7;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a1 ? d4 : (a2 ? d5 : d3));

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d5;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a2 ? (a2 ? d7 : d0) : d7);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d2;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d2;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d3;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d2;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a0 ? d7 : d0);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d5;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d0;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d1;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d1;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d4;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a2 ? d7 : d6);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d6;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d5;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a1 ? d6 : (a2 ? (a0 ? d7 : d1) : d1));

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d3;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d6;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d7;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a1 ? (a1 ? d4 : d3) : d6);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a2 ? d3 : d0);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a1 ? d6 : d4);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d0;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a1 ? d3 : d4);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d7;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a0 ? d6 : d1);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d2;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d3;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d2;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d0;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d4;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d0;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d5;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d3;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d6;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d7;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d7;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a0 ? (a1 ? d0 : d4) : d5);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d1;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d6;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a2 ? d5 : (a0 ? d1 : d4));

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d3;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d2;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d7;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d6;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d4;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d4;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d6;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d4;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a1 ? d0 : d5);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d7;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d7;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d4;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d1;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a2 ? d0 : d7);

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d3;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a2 ? d7 : (a2 ? d6 : d0));

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d4;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d4;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d2;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d4;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d6;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d6;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d4;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d0;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d5;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d5;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = d3;

 endmodule

module mux(output logic out, input logic a0, a1, a2, d0, d1, d2, d3, d4, d5, d6, d7);
always@(*) 

out = (a0 ? d0 : (a0 ? d4 : (a0 ? d4 : d3)));

 endmodule
IF [CUM_HSGPA_Calculated_From_Courses_Unweighted] <=2.00 THEN '0.00 to 2.00' ELSEIF
[CUM_HSGPA_Calculated_From_Courses_Unweighted]>2.00 AND [CUM_HSGPA_Calculated_From_Courses_Unweighted]<=2.50 THEN '2.01 to 2.50' ELSEIF
[CUM_HSGPA_Calculated_From_Courses_Unweighted]>2.50 AND [CUM_HSGPA_Calculated_From_Courses_Unweighted]<=3.00 THEN '2.51 to 3.00' ELSEIF
[CUM_HSGPA_Calculated_From_Courses_Unweighted]>3.00 AND [CUM_HSGPA_Calculated_From_Courses_Unweighted]<=3.50 THEN '3.01 to 3.50' ELSEIF
[CUM_HSGPA_Calculated_From_Courses_Unweighted]>3.50 AND [CUM_HSGPA_Calculated_From_Courses_Unweighted]<=4.00 THEN '3.51 to 4.00' ELSE
'ERROR'
ENDIF

This is the interpretation that will work.  I didn’t test for NULL, it will catch null in the ELSE.

Note:  This results in a STRING.  Make sure that your field is defined as a vstring.

Thanks,

Mark

Alteryx ACE & Top Community Contributor

Chaos reigns within. Repent, reflect and restart. Order shall return.
Please Subscribe to my youTube channel.

mst3kdavid

Guest


  • #1

///——this is what it stated in the error message screen

In Object obj_room_handler, in Event StepNormalEvent action number 1 at line 51 : malformed if statement
In Object obj_room_handler, in Event StepNormalEvent action number 1 at line 56 : malformed if statement
In Object obj_room_handler, in Event StepNormalEvent action number 1 at line 61 : malformed if statement
In Object obj_room_handler, in Event StepNormalEvent action number 1 at line 66 : malformed if statement
Compile Failed — Please check the Compile window for any additional information

///——-this is what the compiler stated

Compile Extensions…finished.
Global scripts…finished.
Final Compile…Error : gml_Object_obj_room_handler_StepNormalEvent_1(51) : malformed if statement
Error : gml_Object_obj_room_handler_StepNormalEvent_1(56) : malformed if statement
Error : gml_Object_obj_room_handler_StepNormalEvent_1(61) : malformed if statement
Error : gml_Object_obj_room_handler_StepNormalEvent_1(66) : malformed if statement
finished.
Saving IFF file… C:UsersDavidAppDataLocalgm_ttt_83229gm_ttt_8882stack attack.win
Writing Chunk… GEN8

///——this is the code it is referencing

Code:

//-----resets if objects last moved to selected=0

if global.redturn=0 && global.objectlastmovedred!=0;  //sets not equal before object id found
    {
    global.objectlastmovedred.selected=0;  //last moved selected=0
}

if global.greenturn=0 && global.objectlastmovedgreen!=0;//sets not equal before object id found
    {
    global.objectlastmovedgreen.selected=0;  //last moved selected=0
}

if global.blueturn=0 && global.objectlastmovedblue!=0; //sets not equal before object id found
    {
    global.objectlastmovedblue.selected=0;  //last moved selected=0
}

if global.brownturn=0 && global.objectlastmovedbrown!=0;//sets not equal before object id found
    {
    global.objectlastmovedbrown.selected=0;  //last moved selected=0
}

I just can’t for the life of me figure out what I did wrong in the code. I’m going bald pulling hairs out

  • #2

Remove the semicolons from the end of the if statements.

  • #3

You have semicolons after your if statements. You only want them after the statements inside the curly braces.

mst3kdavid

Guest


  • #4

You have semicolons after your if statements. You only want them after the statements inside the curly braces.

Remove the semicolons from the end of the if statements.

that’s what i get for copy paste :p thanks guys!

  • #5

that’s what i get for copy paste :p thanks guys!

Where exactly did you copy and paste from? If it has the unwanted semicolons in that position, it is code that has not even been checked for syntax, let alone correctness. Anything that has not been checked for syntax and correctness is not worth your time to use as a reference.

mst3kdavid

Guest


  • #6

Where exactly did you copy and paste from? If it has the unwanted semicolons in that position, it is code that has not even been checked for syntax, let alone correctness. Anything that has not been checked for syntax and correctness is not worth your time to use as a reference.

it’s in the code I posted. I just added the ! before the =.

  • #7

There are some other mistakes/bad habits as well. Your first code block should ideally look something like:

Code:

if ((global.redturn == 0) && (global.objectlastmovedred != 0))  
{
global.objectlastmovedred.selected = 0;  
}

Use one equals sign for assigning, and two for comparing. Putting each expression into parentheses is a good habit too.

Probably look into instances vs objects too, and be careful with how you use «object.variable.»

mst3kdavid

Guest


  • #8

There are some other mistakes/bad habits as well. Your first code block should ideally look something like:

Code:

if ((global.redturn == 0) && (global.objectlastmovedred != 0)) 
{
global.objectlastmovedred.selected = 0; 
}

Use one equals sign for assigning, and two for comparing. Putting each expression into parentheses is a good habit too.

Probably look into instances vs objects too, and be careful with how you use «object.variable.»

thanks for the heads up! if there’s anything else you can critique let me know. I’m gunna do some research on good habits for coding since I still have work to do in that area.

mst3kdavid

Guest


  • #9

oh and why wouldn’t it be
!==0 instead of !=0. How does the code view that differently?

  • #10

I don’t know why, but !=0 is the correct syntax.

The bugs are listed here can be reproduced on tests for Verilog Translator project (so called «ieee-tests»).

  • test_03_08_01_1.v
    test_03_08_01_1.v:25: syntax error
    test_03_08_01_1.v:27: error: malformed statement
    test_03_08_01_1.v:28: syntax error
    test_03_08_01_1.v:33: error: malformed statement
    test_03_08_01_1.v:34: syntax error
    test_03_08_01_1.v:39: error: malformed statement
    test_03_08_01_1.v:40: syntax error
    

    Cause: attributes for «case» statement branches like «(* full_case, parallel_case *)» are unsupported.

  • test_03_08_01_2.v
    test_03_08_01_2.v:25: syntax error
    test_03_08_01_2.v:27: error: malformed statement
    test_03_08_01_2.v:28: syntax error
    test_03_08_01_2.v:32: error: malformed statement
    test_03_08_01_2.v:33: syntax error
    

    Cause: attributes for «case» statement branches like «(* full_case *)» are unsupported.

  • test_03_08_01_6.v
    test_03_08_01_6.v:25: syntax error
    test_03_08_01_6.v:25: error: malformed statement
    

    Cause: attributes for assignments like «a = b + (* mode = «cla» *) c;» are unsupported.

  • test_03_08_01_7.v
    test_03_08_01_7.v:25: syntax error
    test_03_08_01_7.v:25: error: malformed statement
    

    Cause: attributes for assignments like «a = add (* mode = «cla» *) (b, c);» are unsupported.

  • test_03_08_01_8.v
    test_03_08_01_8.v:25: syntax error
    test_03_08_01_8.v:25: error: malformed statement
    

    Cause: attributes for assignments like «a = b ? (* no_glitch *) c : d;» are unsupported.

  • test_04_03_01_1.v
    test_04_03_01_1.v:24: sorry: trireg nets not supported.
    

    Cause: cannot parse «trireg (small) storeit;»

  • test_04_03_02_1.v
    test_04_03_02_1.v:22: syntax error
    test_04_03_02_1.v:22: error: invalid module item.
    test_04_03_02_1.v:23: syntax error
    test_04_03_02_1.v:23: error: invalid module item.
    

    Cause: cannot parse «tri1 scalared [63:0] bus64;»

  • test_04_04_01_1.v
    test_04_04_01_1.v:22: sorry: trireg nets not supported.
    test_04_04_01_1.v:23: sorry: trireg nets not supported.
    test_04_04_01_1.v:25: syntax error
    test_04_04_01_1.v:25: error: invalid module item.
    

    Cause: cannot parse «trireg a;»

  • test_04_09_03_1_1.v
    test_04_09_03_1_1.v:26: sorry: only 1 dimensional arrays are currently supported.
    test_04_09_03_1_1.v:28: sorry: only 1 dimensional arrays are currently supported.
    

    Cause: cannot parse «reg arrayb[7:0][0:255];»

  • test_04_09_03_1_2.v
    test_04_09_03_1_2.v:26: sorry: only 1 dimensional arrays are currently supported.
    test_04_09_03_1_2.v:28: sorry: only 1 dimensional arrays are currently supported.
    

    Cause: cannot parse «reg arrayb[7:0][0:255];»

  • test_04_10_03_2.v
    test_04_10_03_2.v:23: syntax error
    test_04_10_03_2.v:23: error: invalid module item.
    test_04_10_03_2.v:24: syntax error
    test_04_10_03_2.v:24: error: invalid module item.
    

    Cause: the «specparam» is unsupported.

  • test_05_01_14_1.v
    test_05_01_14_1.v:30: error: Array b['sd3:'sd0] cannot be indexed by a range.
    

    Cause: cannot parse «result = {a, b[3:0], w, 3’b101};»

  • test_05_02_01_4.v
    test_05_02_01_4.v:54: error: Unable to bind wire/reg/memory `x' in `test'
    test_05_02_01_4.v:58: error: Unable to bind wire/reg/memory `z' in `test'
    

    Cause: cannot parse «addr = x;»

  • test_05_02_02_2.v
    test_05_02_02_2.v:25: sorry: only 1 dimensional arrays are currently supported.
    test_05_02_02_2.v:26: sorry: only 1 dimensional arrays are currently supported.
    

    Cause: cnnot parse «wire threed_array[0:255][0:255][0:7];»

  • test_05_03_00_1.v
    test_05_03_00_1.v:25: warning: choosing typ expression.
    

    Cause: «parameter val = (32’d 50: 32’d 75: 32’d 100);»

  • test_06_01_03_1.v
    test_06_01_03_1.v:24: sorry: net delays not supported.
    

    Cause: «wire #10 wireA;»

  • test_07_14_01_1.v
    test_07_14_01_1.v:25: warning: choosing typ expression.
    test_07_14_01_1.v:25: warning: choosing typ expression.
    test_07_14_01_1.v:25: warning: choosing typ expression.
    test_07_14_01_1.v:26: warning: choosing typ expression.
    test_07_14_01_1.v:26: warning: choosing typ expression.
    test_07_14_01_1.v:26: warning: choosing typ expression.
    

    Cause: «bufif0 #(5:7:9, 8:10:12, 15:18:21) b1 (io1, io2, dir);»

  • test_07_14_01_2.v
    test_07_14_01_2.v:26: warning: choosing typ expression.
    test_07_14_01_2.v:27: warning: choosing typ expression.
    

    Cause: » #(95:100:105) clk = 1;»

  • test_07_14_02_2_1.v
    test_07_14_02_2_1.v:25: sorry: trireg nets not supported.
    

    Cause: «trireg ( large ) #(0,0,50) cap1;»

  • test_07_14_02_2_2.v
    test_07_14_02_2_2.v:26: sorry: trireg nets not supported.
    

    Cause: «trireg ( large ) #(0,0,50) cap1;»

  • test_08_06_00_1.v
    test_08_06_00_1.v:46: syntax error
    test_08_06_00_1.v:46: error: syntax error in parameter value assignment list.
    test_08_06_00_1.v:46: error: Invalid module instantiation
    *Cause*: "d_edge_ff #p3 d_inst (q, clock, data);" 
    
  • test_08_07_00_1.v
    test_08_07_00_1.v:30: syntax error
    

    Cause: » ? ?? 01 : ? : 1 ;»

  • test_09_06_00_1.v
    test_09_06_00_1.v:27: syntax error
    test_09_06_00_1.v:28: error: invalid module item.
    test_09_06_00_1.v:29: syntax error
    test_09_06_00_1.v:29: error: Invalid module instantiation
    test_09_06_00_1.v:30: error: Invalid module instantiation
    test_09_06_00_1.v:31: error: Invalid module instantiation
    test_09_06_00_1.v:34: error: invalid module item.
    test_09_06_00_1.v:35: syntax error
    test_09_06_00_1.v:35: error: Invalid module instantiation
    test_09_06_00_1.v:36: error: Invalid module instantiation
    

    Cause: «begin : mult»

  • test_09_06_00_2.v
    test_09_06_00_2.v:23: syntax error
    test_09_06_00_2.v:24: error: invalid module item.
    test_09_06_00_2.v:25: syntax error
    test_09_06_00_2.v:25: error: Invalid module instantiation
    test_09_06_00_2.v:26: error: Invalid module instantiation
    test_09_06_00_2.v:29: error: invalid module item.
    test_09_06_00_2.v:30: syntax error
    test_09_06_00_2.v:30: error: Invalid module instantiation
    

    Cause: «begin : count1s»

  • test_09_07_05_4.v
    test_09_07_05_4.v:33: internal error: NetProc::nex_input not implemented
    

    Cause: «* // equivalent to (c or d)
    x = c ^ d;»

  • test_09_07_07_1.v
    test_09_07_07_1.v:32: syntax error
    

    Cause: «repeat (-3) @ (posedge clk)»

  • test_10_03_00_5.v
    test_10_03_00_5.v:44: syntax error
    test_10_03_00_5.v:45: error: malformed statement
    test_10_03_00_5.v:48: syntax error
    test_10_03_00_5.v:49: error: malformed statement
    

    Cause: «begin : posedge(clk)»

  • test_12_02_00_1.v
    test_12_02_00_1.v:57: error: Range expressions must be constant.
    test_12_02_00_1.v:57       : This MSB expression violates the rule: LOG2(DEPTH)
    

    Cause: «reg [LOG2:0] depth;»

  • test_12_03_07_1.v
    test_12_03_07_1.v:29: error: Scalar port ``net_r'' has a vectored net declaration [64:1].
    test_12_03_07_1.v:26: error: no wire/reg net_r in module driver.
    test_12_03_07_1.v:33: error: Scalar port ``net_r'' has a vectored net declaration [64:1].
    test_12_03_07_1.v:32: error: no wire/reg net_r in module receiver.
    test_12_03_07_1.v:29: error: Net net_r is not defined in this context.
    test_12_03_07_1.v:36: error: Unable to bind wire/reg/memory `net_r' in `receiver'
    

    Cause:

    26: module driver (net_r);
    27:   output net_r;
    28:   real r;
    29:   wire [64:1] net_r = $realtobits(r);
    30: endmodule
    31: 
    32: module receiver (net_r);
    33:   input net_r;
    34:   wire [64:1] net_r;
    35:   real r;
    36:   initial assign r = $bitstoreal (net_r);
    37: endmodule
    
  • test_12_04_02_1.v
    test_12_04_02_1.v:46: syntax error
    test_12_04_02_1.v:46: error: invalid module item.
    

    Cause: «else;»

  • test_14_03_00_1.v
    test_14_03_00_1.v:30: warning: choosing typ expression.
    test_14_03_00_1.v:30: warning: choosing typ expression.
    test_14_03_00_1.v:31: warning: choosing typ expression.
    test_14_03_00_1.v:31: warning: choosing typ expression.
    

    Cause:

    specparam  tRise_clk_q = 45:150:270, tFall_clk_q=60:200:350;
    specparam  tRise_Control = 35:40:45, tFall_control=40:50:65;
    
  • test_14_03_01_1.v
    test_14_03_01_1.v:29: syntax error
    test_14_03_01_1.v:26: error: syntax error in specify block
    

    Cause:

    (C => Q) = 20;
    (C => Q) = 10:14:20;
    
  • test_15_05_00_2.v
    test_15_05_00_2.v:58: warning: choosing typ expression.
    test_15_05_00_2.v:58: warning: choosing typ expression.
    test_15_05_00_2.v:59: warning: choosing typ expression.
    test_15_05_00_2.v:59: warning: choosing typ expression.
    

    Cause:

    specparam tPLHc = 4:6:9, tPHLc = 5:8:11;
    specparam tPLHpc = 3:5:6, tPHLpc = 4:7:9;
    
  • test_15_05_01_3.v
    test_15_05_01_3.v:32: warning: timing checks are not supported and delayed signal "del_CLK" will not be driven.
    test_15_05_01_3.v:32: warning: timing checks are not supported and delayed signal "del_DATA1" will not be driven.
    

    Cause:

    $setuphold (posedge CLK, DATA1, -10, 20,,,, del_CLK, del_DATA1);
    
  • test_15_05_01_4.v
    test_15_05_01_4.v:30: syntax error
    test_15_05_01_4.v:30: Invalid simple path
    test_15_05_01_4.v:31: warning: timing checks are not supported and delayed signal "dCLK" will not be driven.
    test_15_05_01_4.v:31: warning: timing checks are not supported and delayed signal "dD" will not be driven.
    test_15_05_01_4.v:32: warning: timing checks are not supported and delayed signal "dCLK" will not be driven.
    test_15_05_01_4.v:32: warning: timing checks are not supported and delayed signal "dD" will not be driven.
    

    Cause:

    (CLK = Q) = 6;
    $setuphold (posedge CLK, posedge D, -3,  8, , , , dCLK, dD);
    $setuphold (posedge CLK, negedge D, -7, 13, , , , dCLK, dD);
    
  • test_15_05_02_3.v
    test_15_05_02_3.v:33: warning: timing checks are not supported and delayed signal "dCP" will not be driven.
    test_15_05_02_3.v:33: warning: timing checks are not supported and delayed signal "dD" will not be driven.
    test_15_05_02_3.v:34: warning: timing checks are not supported and delayed signal "dCP" will not be driven.
    test_15_05_02_3.v:34: warning: timing checks are not supported and delayed signal "dTI" will not be driven.
    test_15_05_02_3.v:35: warning: timing checks are not supported and delayed signal "dCP" will not be driven.
    test_15_05_02_3.v:35: warning: timing checks are not supported and delayed signal "dTE" will not be driven.
    

    Cause:

    $setuphold(posedge CP, D, -10,  20, notifier, ,TE_cond_D,  dCP, dD);
    $setuphold(posedge CP, TI, 20, -10, notifier, ,TE_cond_TI, dCP, dTI);
    $setuphold(posedge CP, TE, -4,   8, notifier, ,DXTI_cond,  dCP, dTE);
    
  • test_15_07_00_1.v
    test_15_07_00_1.v:29: error: Q is not a valid l-value in DFF.
    test_15_07_00_1.v:26:      : Q is declared here as wire.
    

    Cause:

    module DFF (Q, CLK, DAT);
      input CLK;
      input [7:0] DAT;
      output [7:0] Q;
    
      always @(posedge clk)
        Q = DAT;
      specify
        $setup (DAT, posedge CLK, 10);
      endspecify
    endmodule
    
  • test_16_02_03_1.v
    test_16_02_03_1.v:25: syntax error
    test_16_02_03_1.v:25: error: invalid module item.
    test_16_02_03_1.v:35: syntax error
    test_16_02_03_1.v:35: error: invalid module item.
    

    Cause:

    22:module clock(clk);
    23:  output clk;
    24:  reg clk;
    25:  specparam dhigh=0, dlow=0;
    26:
    27:  initial clk = 0;
    28:
    29:  always
    30:    begin
    31:      #dhigh clk = 1; // Clock remains low for time dlow
    32:                      // before transitioning to 1
    33:      #dlow  clk = 0; // Clock remains high for time dhigh
    34:                      // before transitioning to 0
    35:    end;
    36:endmodule
    
  • test_17_02_04_4_1.v
    test_17_02_04_4_1.v:40: syntax error
    test_17_02_04_4_1.v:40: error: malformed statement
    

    Cause:

    code = $fread (mem, fd, , count);
    
  • test_17_05_01_1.v
    test_17_05_01_1.v:31: syntax error
    test_17_05_01_1.v:31: error: invalid module item.
    test_17_05_01_1.v:34: syntax error
    test_17_05_01_1.v:34: error: invalid module item.
    test_17_05_01_1.v:37: syntax error
    test_17_05_01_1.v:37: error: invalid module item.
    

    Cause:

    $async$and$array (mem, {a1,a2,a3,a4,a5,a6,a7}, {b1,b2,b3});
    
    // is equivalent
    $async$and$array (mem, awire, breg);
    
    // An example of a synchronous system call is as follows
    $sync$or$plane (mem, {a1,a2,a3,a4,a5,a6,a7}, {b1,b2,b3});
    
  • 17_05_02_1.v
    test_17_05_02_1.v:28: syntax error
    test_17_05_02_1.v:28: error: invalid module item.
    test_17_05_02_1.v:31: syntax error
    test_17_05_02_1.v:31: error: invalid module item.
    

    Cause:

    $async$nor$plane (mem,{a1,a2,a3,a4,a5,a6,a7},{b1,b2,b3});
    
    // An example of a nand plane system call is as follows:
    $sync$nand$plane (mem,{a1,a2,a3,a4,a5,a6,a7}, {b1,b2,b3});
    
  • test_17_08_00_1.v
    test_17_08_00_1.v:26: error: Scalar port ``net_r'' has a vectored net declaration [64:1].
    test_17_08_00_1.v:31: error: Scalar port ``net_r'' has a vectored net declaration [64:1].
    test_17_08_00_1.v:33: error: Unable to bind wire/reg/memory `net_r' in `receiver'
    

    Cause:

    23: module driver (net_r);
    24:   output net_r;
    25:   real r;
    26:   wire [64:1] net_r = $realtobits (r);
    27: endmodule
    28: 
    29: module receiver (net_r);
    30:   input net_r;
    31:   wire [64:1] net_r;
    32:   real r;
    33:   initial assign r = $bitstoreal (net_r);
    34: endmodule
    
  • For some reason, I’m unable to use assertion statements in my SystemVerilog files:

    test_module.sv:

    module test_module( input  logic i_a,
                                     i_b,
                        output logic o_c );
    
        and m_gate_0(o_c, i_a, i_b);
    endmodule
    

    test_module_tb.sv:

    module test_module_tb;
        logic l_a, l_b, l_c;
    
        test_module m_dut(  .i_a( l_a),
                            .i_b( l_b),
                            .o_c( l_c) );
    
        initial begin
            $dumpfile("dump_test_module.vcd");
            $dumpvars;
    
            l_a = 1'b1;
            l_b = 1'b1;
            #10
            assert( l_c === 1'b1 );
    
            $finish;
        end
    endmodule
    

    Terminal:

    $ iverilog -Wall -Winfloop -g2012 test_module_tb.sv  test_module.sv -o test_module_tb
    test_module_tb.sv:15: syntax error
    test_module_tb.sv:15: error: malformed statement
    test_module_tb.sv:15: sorry: Simple immediate assertion statements not implemented.
    
    $ iverilog -v
    Icarus Verilog version 10.3 (stable) ()
    [...]
    
    $ uname -r
    5.15.0-52-generic
    

    Line 15 is this one: assert( l_c === 1'b1 );

    I’m currently doing homework and the above code worked on the Uni’s Raspberry Pi’s but doesn’t work on my Zorin 16.2 laptop. Perhaps some library responsible for assertions is missing?

    What am I doing wrong?

    Hi,

    I have an application-server-task setup for job-type = ‘QuickReport’.

    When the I runt the task, the generated excel file tell error: “SQL Statement malformed:     [..select statement in quick report..]”

    Executing the quick report manually doesn’t have any error.

    Does anybody know about this error and how to handle it?

    The QR-sql-statement:

        SELECT job_id,
           state,
           t.description,
           procedure_name,
           t.queue_id,
           B.DESCRIPTION, B.PROCESS_NUMBER, B.EXECUTION_PLAN,
           arguments_string,
           LAG (executed,1) OVER (PARTITION BY t.queue_id ORDER BY started) prev_job_executed,
           (started — (LAG (executed,1) OVER (PARTITION BY t.queue_id ORDER BY created)))*24*60*60  time_since_prev_job_executed,
           (started-posted)*24*60*60 wait_for_start,
           (executed-started)*24*60*60 exec_time,
           posted,
           created,
           started,
           executed,
           error_text,
           username,
           t.lang_code,
           progress_info,
           process_id,
           inst_id,
           lang_indep,
           sid,
           serial#,
           schedule_id,
           argument_type,
           long_op_id,
           slno,
           total_work,
           so_far,
           exclude_cleanup
    FROM   ifsapp.deferred_job t, IFSAPP.BATCH_QUEUE B
    WHERE t.queue_id = b.queue_id
    AND TO_CHAR( b.queue_id) =  ‘&Queue_ID’
    AND t.posted > SYSDATE-7

    P.S.: I have tried to change the format of input parameter like: 

    • AND b.queue_id = ‘&Queue_ID’
    • AND b.queue_id = &Queue_ID
    • AND b.queue_id = TO_NUMBER(‘&Queue_ID’)

    — same error occurs

    Any feedback will be very appreciated.

    Thanks and best regards,

    ~Juni

    Table of Contents

    ArmA 2 Common Scripting Errors

    Error Generic Error in Expression

    This error occurs when the type of data an operator is expecting does not match.

    Example:

    _myString = "The meaning of life is " + 42

    Error Invalid Number in Expression

    This usually occurs when an expression is left incomplete or malformed.

    Example:

    _myNumber = 2 + 3 +

    Error Type Something Expected Nothing

    This error usually occurs when a statement is incomplete, malformed, or non-existent.

    Examples:

    non-existent statement:

    7 + 6 * 5

    malformed statement:

    3 = 4

    incomplete statement:

    _myVariable

    Error Type String Expected Code

    This error occurs when there is a syntax error contained inside a block of code that makes up part of another statement. The error will be identified as being part of the original statement, not on the specific line where it actually occurs. For instance, if there is a syntax error inside an if statement’s “then” block or “else” block, the error will be identified in front of the “then” keyword or “else” keyword respectively.

    Example:

    if (_USD + _USDcent + _CAD + _CADcent + _ZWD == 0) then
    {
    	hint "Your wallet is empty.";
    }
    else
    {
    	_output = "Your wallet contains:";
    	if (_USD+_USDcent > 0) then
    	{
    		_output = _output + format["n- United States Dollars: %1.%2 USD", _USD, _USDcent];
    	} <-- Missing semicolon
    	if (_CAD+_CADcent > 0) then
    	{
    		_output = _output + format["n- Canadian Dollars: %1.%2 CAD", _CAD, _CADcent];
    	} <-- Missing semicolon
    	if (_ZWD > 0) then
    	{
    		_output = _output + format["n- Zimbabwean Dollars: %1 ZWD", _ZWD];
    	} <-- Missing semicolon ...
    	hint _output;
    };

    There are missing semicolons on each of the if statements within the else block, but the error will be identified as being before the “else” statement as “Type String, Expected Code”.

    Error Unknown Operator

    This error occurs when the game engine has attempted to parse something as an operator, but could not successfully find the given symbol.

    Examples:

    _myBits = 1002 | 43
    _myVariable = "hello " concat "world!"

    There are several reasons why this might happen. If a script intended for a new version of OFP makes use of a new operator, and is run on an old copy of the game, this error will show up. Another common cause is when executing a formatted String as an instruction, where a variable inside the instruction is undefined.

    Example:

    ["a = %1", b]

    Outputted instruction:

    a = scalar bool array string 0xfcfffef

    Result:

    The engine interprets ‘scalar’ as an uninitialised variable (similar to ‘b’ in the above example), and the parser expects an operator as the next token. ‘bool’ cannot be found in the list of operators (since it isn’t one), and so an Unknown Operator message is given.

    Error Zero Divisor

    This error occurs when the variable you are trying to divide has a value of zero, or when you attempt to divide a variable by 0. It also occurs when you attempt to access an element of an array which does not exist.

    Example:

    _myVar = 0 / 15
    _myVar = 15 / 0
    _myVar = [1,2,3] select 15

    When an error makes no sense

    Sometimes, the displayed error will not appear to be correct. The error parser will point you to a line of code which is correct, yet it will tell you that some strange error exists at that point.

    In this case, the problem usually lies beneath that point in the code. Usually the source of the error is actually a missing parenthesis, bracket, curly brace, etc. Usually the error message says that it encountered a string where it expected code.

    Example:

    for "_i" from 0 to 1 do
    {
    	_str = format["mystring";
    };

    In this example, the error will be shown to originate just to the left of the word “do”. However, the error is actually caused by a line in the code beneath the do statement. (Such an error would be difficult to spot if it were many more lines down in the code.)

    scalar bool array string 0xe0ffffef

    If variables don’t exist, their value as string is generally a “scalar bool array string 0xe0ffffef” error.

    Examples:

    hint format ["%1", undefined_variable]
     
    hint (if (format ["%1", undefined_variable] == "scalar bool array string 0xe0ffffef") then [{"Variable undefined"},{"Variable already defined"}])

    Я новичок в Verilog, и мне нужно создать 8-битный компаратор, когда a равно, меньше или больше, чем b. Вот что у меня есть для кода (который не дает мне ошибок):

    module MagnitudeComparator8bit (input signed [7:0]a,
                                    input signed [7:0]b,
                                    output eq,
                                    output lt,
                                    output gt);
        assign eq = a == b;
        assign lt = a < b;
        assign gt = a > b;
    endmodule
    

    И вот что у меня есть для тестового стенда, но когда я запускаю моделирование, я сталкиваюсь с несколькими ошибками, но я не уверен, где я ошибся. Любая помощь?

    module MagnitudeComparatorTestbench;
        reg [7:0] a, b;
        wire eq, lt, gt;
    
        MagnitudeComparator8bit uut(
           .a(a),
           .b(b),
           .eq(eq),
           .lt(lt),
           .gt(gt)
        );
    
        initial begin
              $monitor (“%d %b %b %d %d %d”, $time, a, b, eq, lt, gt);
              a=8’b11110000;
              b=8’b11110000;
          #10 a=8’b1001001;
              b=8’b10101010;
          #10 a=8’b11001100;
              b=8’b10101000;
          #10 $finish
       end  
    endmodule
    

    Ошибки:

    testbench.sv:14: error: unmatched character (hex ?)
    testbench.sv:e: error: unmatched character (hex ?)
    testbench.sv:e: error: unmatched character (hex ?)
    testbench.sv:e: syntax error
    testbench.sv:e: error: unmatched character (hex ?)
    testbench.sv:e: error: unmatched character (hex ?)
    testbench.sv:e: error: unmatched character (hex ?)
    testbench.sv:e: error: malformed statement
    testbench.sv:f: error: unmatched character (hex ?)
    testbench.sv:f: error: unmatched character (hex ?)
    testbench.sv:f: error: unmatched character (hex ?)
    testbench.sv:f: syntax error
    testbench.sv:f: error: malformed statement
    testbench.sv:10: error: unmatched character (hex ?)
    testbench.sv:10: error: unmatched character (hex ?)
    testbench.sv:10: error: unmatched character (hex ?)
    testbench.sv:10: syntax error
    testbench.sv:10: error: malformed statement
    testbench.sv:11: error: unmatched character (hex ?)
    testbench.sv:11: error: unmatched character (hex ?)
    testbench.sv:11: error: unmatched character (hex ?)
    testbench.sv:11: syntax error
    testbench.sv:11: error: malformed statement
    testbench.sv:12: error: unmatched character (hex ?)
    testbench.sv:12: error: unmatched character (hex ?)
    testbench.sv:12: error: unmatched character (hex ?)
    testbench.sv:12: syntax error
    testbench.sv:12: error: malformed statement
    testbench.sv:13: error: unmatched character (hex ?)
    testbench.sv:13: error: unmatched character (hex ?)
    testbench.sv:13: error: unmatched character (hex ?)
    testbench.sv:13: syntax error
    testbench.sv:13: error: malformed statement
    testbench.sv:14: error: unmatched character (hex ?)
    testbench.sv:14: error: unmatched character (hex ?)
    testbench.sv:14: error: unmatched character (hex ?)
    testbench.sv:14: syntax error
    testbench.sv:14: error: malformed statement
    testbench.sv:16: syntax error
    Exit code expected: 0, received: 40
    

    2 ответа

    Лучший ответ

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

    module MagnitudeComparatorTestbench;
        reg [7:0] a, b;
        wire eq, lt, gt;
    
        MagnitudeComparator8bit uut(
           .a(a),
           .b(b),
           .eq(eq),
           .lt(lt),
           .gt(gt)
        );
    
        initial begin
              $monitor ("%d %b %b %d %d %d", $time, a, b, eq, lt, gt);
              a=8'b11110000;
              b=8'b11110000;
          #10 a=8'b1001001;
              b=8'b10101010;
          #10 a=8'b11001100;
              b=8'b10101000;
          #10 $finish;
       end  
    endmodule
    

    Я также добавил полуфабрикат после финиша $.


    0

    toolic
    29 Янв 2016 в 00:32

    Я пробовал ваш код, и единственная проблема — отсутствие точки с запятой после $ finish. Итак # 10 $ финиш;


    0

    DBB
    29 Янв 2016 в 00:35

    Понравилась статья? Поделить с друзьями:
  • Error makefile 71 command syntax error
  • Error make sure you have a working qt qmake on your path
  • Error major abi change detected please run upgrade instead
  • Error main must return int как исправить
  • Error main method not found in class main please define the main method as