data/full_repos/permissive/142844950/rtl/p_shfrot/p_shfrot_ftb.v
None: at end of input
1: b"%Error: data/full_repos/permissive/142844950/rtl/p_shfrot/p_shfrot_ftb.v:14: Unsupported or unknown PLI call: $anyseq\nreg  [31:0] crs1        = $anyseq;  \n                          ^~~~~~~\n%Error: data/full_repos/permissive/142844950/rtl/p_shfrot/p_shfrot_ftb.v:15: Unsupported or unknown PLI call: $anyseq\nreg  [ 4:0] shamt       = $anyseq;  \n                          ^~~~~~~\n%Error: data/full_repos/permissive/142844950/rtl/p_shfrot/p_shfrot_ftb.v:17: Unsupported or unknown PLI call: $anyseq\nreg  [ 4:0] pw          = $anyseq;  \n                          ^~~~~~~\n%Error: data/full_repos/permissive/142844950/rtl/p_shfrot/p_shfrot_ftb.v:19: Unsupported or unknown PLI call: $anyseq\nreg         shift       = $anyseq;  \n                          ^~~~~~~\n%Error: data/full_repos/permissive/142844950/rtl/p_shfrot/p_shfrot_ftb.v:20: Unsupported or unknown PLI call: $anyseq\nreg         rotate      = $anyseq;  \n                          ^~~~~~~\n%Error: data/full_repos/permissive/142844950/rtl/p_shfrot/p_shfrot_ftb.v:21: Unsupported or unknown PLI call: $anyseq\nreg         left        = $anyseq;  \n                          ^~~~~~~\n%Error: data/full_repos/permissive/142844950/rtl/p_shfrot/p_shfrot_ftb.v:22: Unsupported or unknown PLI call: $anyseq\nreg         right       = $anyseq;  \n                          ^~~~~~~\n%Error: data/full_repos/permissive/142844950/rtl/p_shfrot/p_shfrot_ftb.v:37: syntax error, unexpected '(', expecting property\n    restrict(one_hot_w <= 1);\n             ^~~~~~~~~\n%Error: Exiting due to 8 error(s)\n        ... See the manual and https://verilator.org for more assistance.\n"
module p_shfrot_ftb (
    
input clock,
input reset

);

reg  [31:0] crs1        = $anyseq;
reg  [ 4:0] shamt       = $anyseq;

reg  [ 4:0] pw          = $anyseq;

reg         shift       = $anyseq;
reg         rotate      = $anyseq;
reg         left        = $anyseq;
reg         right       = $anyseq;

wire [31:0] result      ;
wire [31:0] expectation ;

wire w_32 = pw[0];
wire w_16 = pw[1];
wire w_8  = pw[2];
wire w_4  = pw[3];
wire w_2  = pw[4];

wire [4:0] one_hot_w = w_32 + w_16 + w_8 + w_4 + w_2;

always @(posedge clock) begin

    restrict(one_hot_w <= 1);

    restrict(crs1 == 32'b1);

    restrict(shift ^ rotate);
    restrict(left  ^ right );

    if(w_32) begin
        assert(result == expectation);
    end

    if(w_16) begin
        assert(result == expectation);
    end

    if(w_8 ) begin
        assert(result == expectation);
    end

    if(w_4 ) begin
        assert(result == expectation);
    end

    if(w_2 ) begin
        assert(result == expectation);
    end

end




p_shfrot_checker i_p_shfrot_checker(
.crs1  (crs1  ),
.shamt (shamt ),
.pw    (pw    ),
.shift (shift ),
.rotate(rotate),
.left  (left  ),
.right (right ),
.result(expectation)
);



p_shfrot i_p_shfrot(
.crs1  (crs1  ),
.shamt (shamt ),
.pw    (pw    ),
.shift (shift ),
.rotate(rotate),
.left  (left  ),
.right (right ),
.result(result)
);

endmodule
module p_shfrot_ftb (
    
input clock,
input reset

);


reg  [31:0] crs1        = $anyseq;
reg  [ 4:0] shamt       = $anyseq;

reg  [ 4:0] pw          = $anyseq;

reg         shift       = $anyseq;
reg         rotate      = $anyseq;
reg         left        = $anyseq;
reg         right       = $anyseq;

wire [31:0] result      ;
wire [31:0] expectation ;

wire w_32 = pw[0];
wire w_16 = pw[1];
wire w_8  = pw[2];
wire w_4  = pw[3];
wire w_2  = pw[4];

wire [4:0] one_hot_w = w_32 + w_16 + w_8 + w_4 + w_2;

always @(posedge clock) begin

    restrict(one_hot_w <= 1);

    restrict(crs1 == 32'b1);

    restrict(shift ^ rotate);
    restrict(left  ^ right );

    if(w_32) begin
        assert(result == expectation);
    end

    if(w_16) begin
        assert(result == expectation);
    end

    if(w_8 ) begin
        assert(result == expectation);
    end

    if(w_4 ) begin
        assert(result == expectation);
    end

    if(w_2 ) begin
        assert(result == expectation);
    end

end




p_shfrot_checker i_p_shfrot_checker(
.crs1  (crs1  ),
.shamt (shamt ),
.pw    (pw    ),
.shift (shift ),
.rotate(rotate),
.left  (left  ),
.right (right ),
.result(expectation)
);



p_shfrot i_p_shfrot(
.crs1  (crs1  ),
.shamt (shamt ),
.pw    (pw    ),
.shift (shift ),
.rotate(rotate),
.left  (left  ),
.right (right ),
.result(result)
);

endmodule