mirror of https://github.com/YosysHQ/yosys.git
Added cast to type support (#4284)
This commit is contained in:
parent
8e1e2b9a39
commit
ce7db661a8
|
@ -478,6 +478,10 @@ void AstNode::dumpVlog(FILE *f, std::string indent) const
|
|||
fprintf(f, ";\n");
|
||||
break;
|
||||
|
||||
case AST_WIRETYPE:
|
||||
fprintf(f, "%s", id2vl(str).c_str());
|
||||
break;
|
||||
|
||||
case AST_MEMORY:
|
||||
fprintf(f, "%s" "memory", indent.c_str());
|
||||
if (is_signed)
|
||||
|
@ -694,7 +698,17 @@ void AstNode::dumpVlog(FILE *f, std::string indent) const
|
|||
break;
|
||||
|
||||
case AST_CAST_SIZE:
|
||||
children[0]->dumpVlog(f, "");
|
||||
switch (children[0]->type)
|
||||
{
|
||||
case AST_WIRE:
|
||||
if (children[0]->children.size() > 0)
|
||||
children[0]->children[0]->dumpVlog(f, "");
|
||||
else
|
||||
fprintf(f, "%d'", children[0]->range_left - children[0]->range_right + 1);
|
||||
break;
|
||||
default:
|
||||
children[0]->dumpVlog(f, "");
|
||||
}
|
||||
fprintf(f, "'(");
|
||||
children[1]->dumpVlog(f, "");
|
||||
fprintf(f, ")");
|
||||
|
|
|
@ -1500,11 +1500,69 @@ bool AstNode::simplify(bool const_fold, int stage, int width_hint, bool sign_hin
|
|||
}
|
||||
break;
|
||||
|
||||
case AST_CAST_SIZE: {
|
||||
int width = 1;
|
||||
AstNode *node;
|
||||
AstNode *child = children[0];
|
||||
|
||||
if (child->type == AST_WIRE) {
|
||||
if (child->children.size() == 0) {
|
||||
// Base type (e.g., int)
|
||||
width = child->range_left - child->range_right +1;
|
||||
node = mkconst_int(width, child->is_signed);
|
||||
} else {
|
||||
// User defined type
|
||||
log_assert(child->children[0]->type == AST_WIRETYPE);
|
||||
|
||||
const std::string &type_name = child->children[0]->str;
|
||||
if (!current_scope.count(type_name))
|
||||
input_error("Unknown identifier `%s' used as type name\n", type_name.c_str());
|
||||
AstNode *resolved_type_node = current_scope.at(type_name);
|
||||
if (resolved_type_node->type != AST_TYPEDEF)
|
||||
input_error("`%s' does not name a type\n", type_name.c_str());
|
||||
log_assert(resolved_type_node->children.size() == 1);
|
||||
AstNode *template_node = resolved_type_node->children[0];
|
||||
|
||||
// Ensure typedef itself is fully simplified
|
||||
while (template_node->simplify(const_fold, stage, width_hint, sign_hint)) {};
|
||||
|
||||
switch (template_node->type)
|
||||
{
|
||||
case AST_WIRE: {
|
||||
if (template_node->children.size() > 0 && template_node->children[0]->type == AST_RANGE)
|
||||
width = range_width(this, template_node->children[0]);
|
||||
child->delete_children();
|
||||
node = mkconst_int(width, true);
|
||||
break;
|
||||
}
|
||||
|
||||
case AST_STRUCT:
|
||||
case AST_UNION: {
|
||||
child->delete_children();
|
||||
width = size_packed_struct(template_node, 0);
|
||||
node = mkconst_int(width, false);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
log_error("Don't know how to translate static cast of type %s\n", type2str(template_node->type).c_str());
|
||||
}
|
||||
}
|
||||
|
||||
delete child;
|
||||
children.erase(children.begin());
|
||||
children.insert(children.begin(), node);
|
||||
}
|
||||
|
||||
detect_width_simple = true;
|
||||
children_are_self_determined = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case AST_TO_BITS:
|
||||
case AST_TO_SIGNED:
|
||||
case AST_TO_UNSIGNED:
|
||||
case AST_SELFSZ:
|
||||
case AST_CAST_SIZE:
|
||||
case AST_CONCAT:
|
||||
case AST_REPLICATE:
|
||||
case AST_REDUCE_AND:
|
||||
|
|
|
@ -3506,6 +3506,12 @@ basic_expr:
|
|||
$$ = new AstNode(AST_CAST_SIZE, $1, $4);
|
||||
SET_AST_NODE_LOC($$, @1, @4);
|
||||
} |
|
||||
typedef_base_type OP_CAST '(' expr ')' {
|
||||
if (!sv_mode)
|
||||
frontend_verilog_yyerror("Static cast is only supported in SystemVerilog mode.");
|
||||
$$ = new AstNode(AST_CAST_SIZE, $1, $4);
|
||||
SET_AST_NODE_LOC($$, @1, @4);
|
||||
} |
|
||||
'(' expr '=' expr ')' {
|
||||
ensureAsgnExprAllowed();
|
||||
AstNode *node = new AstNode(AST_ASSIGN_EQ, $2, $4);
|
||||
|
|
|
@ -15,6 +15,18 @@ module top;
|
|||
logic signed [1:0] L2sb10 = 2;
|
||||
logic signed [1:0] L2sb11 = 3;
|
||||
|
||||
typedef logic u1bit_t;
|
||||
typedef logic signed s1bit_t;
|
||||
typedef logic [1:0] u2bit_t;
|
||||
typedef logic signed [1:0] s2bit_t;
|
||||
typedef logic [2:0] u3bit_t;
|
||||
|
||||
typedef struct packed {
|
||||
u1bit_t sign;
|
||||
u3bit_t msbs;
|
||||
byte lsbs;
|
||||
} s12bit_packed_struct_t;
|
||||
|
||||
logic y = 1;
|
||||
|
||||
always @* begin
|
||||
|
@ -32,6 +44,19 @@ module top;
|
|||
assert (1'(L2sb10) == 1'b0);
|
||||
assert (1'(L2sb11) == 1'b1);
|
||||
|
||||
assert (u1bit_t'(L1b0 ) == 1'b0);
|
||||
assert (u1bit_t'(L1b1 ) == 1'b1);
|
||||
assert (s1bit_t'(L1sb0 ) == 1'b0);
|
||||
assert (s1bit_t'(L1sb1 ) == 1'b1);
|
||||
assert (u1bit_t'(L2b00 ) == 1'b0);
|
||||
assert (u1bit_t'(L2b01 ) == 1'b1);
|
||||
assert (u1bit_t'(L2b10 ) == 1'b0);
|
||||
assert (u1bit_t'(L2b11 ) == 1'b1);
|
||||
assert (s1bit_t'(L2sb00) == 1'b0);
|
||||
assert (s1bit_t'(L2sb01) == 1'b1);
|
||||
assert (s1bit_t'(L2sb10) == 1'b0);
|
||||
assert (s1bit_t'(L2sb11) == 1'b1);
|
||||
|
||||
assert (2'(L1b0 ) == 2'b00);
|
||||
assert (2'(L1b1 ) == 2'b01);
|
||||
assert (2'(L1sb0 ) == 2'b00);
|
||||
|
@ -45,6 +70,19 @@ module top;
|
|||
assert (2'(L2sb10) == 2'b10);
|
||||
assert (2'(L2sb11) == 2'b11);
|
||||
|
||||
assert (u2bit_t'(L1b0 ) == 2'b00);
|
||||
assert (u2bit_t'(L1b1 ) == 2'b01);
|
||||
assert (s2bit_t'(L1sb0 ) == 2'b00);
|
||||
assert (s2bit_t'(L1sb1 ) == 2'b11);
|
||||
assert (u2bit_t'(L2b00 ) == 2'b00);
|
||||
assert (u2bit_t'(L2b01 ) == 2'b01);
|
||||
assert (u2bit_t'(L2b10 ) == 2'b10);
|
||||
assert (u2bit_t'(L2b11 ) == 2'b11);
|
||||
assert (s2bit_t'(L2sb00) == 2'b00);
|
||||
assert (s2bit_t'(L2sb01) == 2'b01);
|
||||
assert (s2bit_t'(L2sb10) == 2'b10);
|
||||
assert (s2bit_t'(L2sb11) == 2'b11);
|
||||
|
||||
assert (3'(L1b0 ) == 3'b000);
|
||||
assert (3'(L1b1 ) == 3'b001);
|
||||
assert (3'(L1sb0 ) == 3'b000);
|
||||
|
@ -58,6 +96,19 @@ module top;
|
|||
assert (3'(L2sb10) == 3'b110);
|
||||
assert (3'(L2sb11) == 3'b111);
|
||||
|
||||
assert (u3bit_t'(L1b0 ) == 3'b000);
|
||||
assert (u3bit_t'(L1b1 ) == 3'b001);
|
||||
assert (u3bit_t'(L1sb0 ) == 3'b000);
|
||||
assert (u3bit_t'(L1sb1 ) == 3'b111);
|
||||
assert (u3bit_t'(L2b00 ) == 3'b000);
|
||||
assert (u3bit_t'(L2b01 ) == 3'b001);
|
||||
assert (u3bit_t'(L2b10 ) == 3'b010);
|
||||
assert (u3bit_t'(L2b11 ) == 3'b011);
|
||||
assert (u3bit_t'(L2sb00) == 3'b000);
|
||||
assert (u3bit_t'(L2sb01) == 3'b001);
|
||||
assert (u3bit_t'(L2sb10) == 3'b110);
|
||||
assert (u3bit_t'(L2sb11) == 3'b111);
|
||||
|
||||
assert (3'(L1b0 | '1) == 3'b111);
|
||||
assert (3'(L1b1 | '1) == 3'b111);
|
||||
assert (3'(L1sb0 | '1) == 3'b111);
|
||||
|
@ -71,6 +122,58 @@ module top;
|
|||
assert (3'(L2sb10 | '1) == 3'b111);
|
||||
assert (3'(L2sb11 | '1) == 3'b111);
|
||||
|
||||
assert (u3bit_t'(L1b0 | '1) == 3'b111);
|
||||
assert (u3bit_t'(L1b1 | '1) == 3'b111);
|
||||
assert (u3bit_t'(L1sb0 | '1) == 3'b111);
|
||||
assert (u3bit_t'(L1sb1 | '1) == 3'b111);
|
||||
assert (u3bit_t'(L2b00 | '1) == 3'b111);
|
||||
assert (u3bit_t'(L2b01 | '1) == 3'b111);
|
||||
assert (u3bit_t'(L2b10 | '1) == 3'b111);
|
||||
assert (u3bit_t'(L2b11 | '1) == 3'b111);
|
||||
assert (u3bit_t'(L2sb00 | '1) == 3'b111);
|
||||
assert (u3bit_t'(L2sb01 | '1) == 3'b111);
|
||||
assert (u3bit_t'(L2sb10 | '1) == 3'b111);
|
||||
assert (u3bit_t'(L2sb11 | '1) == 3'b111);
|
||||
|
||||
assert (byte'(L1b0 | '1) == 8'hff);
|
||||
assert (byte'(L1b1 | '1) == 8'hff);
|
||||
assert (byte'(L1sb0 | '1) == 8'hff);
|
||||
assert (byte'(L1sb1 | '1) == 8'hff);
|
||||
assert (byte'(L2b00 | '1) == 8'hff);
|
||||
assert (byte'(L2b01 | '1) == 8'hff);
|
||||
assert (byte'(L2b10 | '1) == 8'hff);
|
||||
assert (byte'(L2b11 | '1) == 8'hff);
|
||||
assert (byte'(L2sb00 | '1) == 8'hff);
|
||||
assert (byte'(L2sb01 | '1) == 8'hff);
|
||||
assert (byte'(L2sb10 | '1) == 8'hff);
|
||||
assert (byte'(L2sb11 | '1) == 8'hff);
|
||||
|
||||
assert (int'(L1b0 | '1) == 32'hffff_ffff);
|
||||
assert (int'(L1b1 | '1) == 32'hffff_ffff);
|
||||
assert (int'(L1sb0 | '1) == 32'hffff_ffff);
|
||||
assert (int'(L1sb1 | '1) == 32'hffff_ffff);
|
||||
assert (int'(L2b00 | '1) == 32'hffff_ffff);
|
||||
assert (int'(L2b01 | '1) == 32'hffff_ffff);
|
||||
assert (int'(L2b10 | '1) == 32'hffff_ffff);
|
||||
assert (int'(L2b11 | '1) == 32'hffff_ffff);
|
||||
assert (int'(L2sb00 | '1) == 32'hffff_ffff);
|
||||
assert (int'(L2sb01 | '1) == 32'hffff_ffff);
|
||||
assert (int'(L2sb10 | '1) == 32'hffff_ffff);
|
||||
assert (int'(L2sb11 | '1) == 32'hffff_ffff);
|
||||
|
||||
assert (s12bit_packed_struct_t'(L1b0 | '1) == 12'hfff);
|
||||
assert (s12bit_packed_struct_t'(L1b1 | '1) == 12'hfff);
|
||||
assert (s12bit_packed_struct_t'(L1sb0 | '1) == 12'hfff);
|
||||
assert (s12bit_packed_struct_t'(L1sb1 | '1) == 12'hfff);
|
||||
assert (s12bit_packed_struct_t'(L2b00 | '1) == 12'hfff);
|
||||
assert (s12bit_packed_struct_t'(L2b01 | '1) == 12'hfff);
|
||||
assert (s12bit_packed_struct_t'(L2b10 | '1) == 12'hfff);
|
||||
assert (s12bit_packed_struct_t'(L2b11 | '1) == 12'hfff);
|
||||
assert (s12bit_packed_struct_t'(L2sb00 | '1) == 12'hfff);
|
||||
assert (s12bit_packed_struct_t'(L2sb01 | '1) == 12'hfff);
|
||||
assert (s12bit_packed_struct_t'(L2sb10 | '1) == 12'hfff);
|
||||
assert (s12bit_packed_struct_t'(L2sb11 | '1) == 12'hfff);
|
||||
|
||||
assert (3'(L1b0 | '0) == 3'b000);
|
||||
assert (3'(L1b1 | '0) == 3'b001);
|
||||
assert (3'(L1sb0 | '0) == 3'b000);
|
||||
|
@ -84,6 +187,58 @@ module top;
|
|||
assert (3'(L2sb10 | '0) == 3'b010);
|
||||
assert (3'(L2sb11 | '0) == 3'b011);
|
||||
|
||||
assert (u3bit_t'(L1b0 | '0) == 3'b000);
|
||||
assert (u3bit_t'(L1b1 | '0) == 3'b001);
|
||||
assert (u3bit_t'(L1sb0 | '0) == 3'b000);
|
||||
assert (u3bit_t'(L1sb1 | '0) == 3'b001);
|
||||
assert (u3bit_t'(L2b00 | '0) == 3'b000);
|
||||
assert (u3bit_t'(L2b01 | '0) == 3'b001);
|
||||
assert (u3bit_t'(L2b10 | '0) == 3'b010);
|
||||
assert (u3bit_t'(L2b11 | '0) == 3'b011);
|
||||
assert (u3bit_t'(L2sb00 | '0) == 3'b000);
|
||||
assert (u3bit_t'(L2sb01 | '0) == 3'b001);
|
||||
assert (u3bit_t'(L2sb10 | '0) == 3'b010);
|
||||
assert (u3bit_t'(L2sb11 | '0) == 3'b011);
|
||||
|
||||
assert (byte'(L1b0 | '0) == 8'h00);
|
||||
assert (byte'(L1b1 | '0) == 8'h01);
|
||||
assert (byte'(L1sb0 | '0) == 8'h00);
|
||||
assert (byte'(L1sb1 | '0) == 8'h01);
|
||||
assert (byte'(L2b00 | '0) == 8'h00);
|
||||
assert (byte'(L2b01 | '0) == 8'h01);
|
||||
assert (byte'(L2b10 | '0) == 8'h02);
|
||||
assert (byte'(L2b11 | '0) == 8'h03);
|
||||
assert (byte'(L2sb00 | '0) == 8'h00);
|
||||
assert (byte'(L2sb01 | '0) == 8'h01);
|
||||
assert (byte'(L2sb10 | '0) == 8'h02);
|
||||
assert (byte'(L2sb11 | '0) == 8'h03);
|
||||
|
||||
assert (int'(L1b0 | '0) == 32'h0000_0000);
|
||||
assert (int'(L1b1 | '0) == 32'h0000_0001);
|
||||
assert (int'(L1sb0 | '0) == 32'h0000_0000);
|
||||
assert (int'(L1sb1 | '0) == 32'h0000_0001);
|
||||
assert (int'(L2b00 | '0) == 32'h0000_0000);
|
||||
assert (int'(L2b01 | '0) == 32'h0000_0001);
|
||||
assert (int'(L2b10 | '0) == 32'h0000_0002);
|
||||
assert (int'(L2b11 | '0) == 32'h0000_0003);
|
||||
assert (int'(L2sb00 | '0) == 32'h0000_0000);
|
||||
assert (int'(L2sb01 | '0) == 32'h0000_0001);
|
||||
assert (int'(L2sb10 | '0) == 32'h0000_0002);
|
||||
assert (int'(L2sb11 | '0) == 32'h0000_0003);
|
||||
|
||||
assert (s12bit_packed_struct_t'(L1b0 | '0) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(L1b1 | '0) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(L1sb0 | '0) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(L1sb1 | '0) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(L2b00 | '0) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(L2b01 | '0) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(L2b10 | '0) == 12'h002);
|
||||
assert (s12bit_packed_struct_t'(L2b11 | '0) == 12'h003);
|
||||
assert (s12bit_packed_struct_t'(L2sb00 | '0) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(L2sb01 | '0) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(L2sb10 | '0) == 12'h002);
|
||||
assert (s12bit_packed_struct_t'(L2sb11 | '0) == 12'h003);
|
||||
|
||||
assert (3'(y ? L1b0 : '1) == 3'b000);
|
||||
assert (3'(y ? L1b1 : '1) == 3'b001);
|
||||
assert (3'(y ? L1sb0 : '1) == 3'b000);
|
||||
|
@ -97,6 +252,58 @@ module top;
|
|||
assert (3'(y ? L2sb10 : '1) == 3'b010);
|
||||
assert (3'(y ? L2sb11 : '1) == 3'b011);
|
||||
|
||||
assert (u3bit_t'(y ? L1b0 : '1) == 3'b000);
|
||||
assert (u3bit_t'(y ? L1b1 : '1) == 3'b001);
|
||||
assert (u3bit_t'(y ? L1sb0 : '1) == 3'b000);
|
||||
assert (u3bit_t'(y ? L1sb1 : '1) == 3'b001);
|
||||
assert (u3bit_t'(y ? L2b00 : '1) == 3'b000);
|
||||
assert (u3bit_t'(y ? L2b01 : '1) == 3'b001);
|
||||
assert (u3bit_t'(y ? L2b10 : '1) == 3'b010);
|
||||
assert (u3bit_t'(y ? L2b11 : '1) == 3'b011);
|
||||
assert (u3bit_t'(y ? L2sb00 : '1) == 3'b000);
|
||||
assert (u3bit_t'(y ? L2sb01 : '1) == 3'b001);
|
||||
assert (u3bit_t'(y ? L2sb10 : '1) == 3'b010);
|
||||
assert (u3bit_t'(y ? L2sb11 : '1) == 3'b011);
|
||||
|
||||
assert (byte'(y ? L1b0 : '1) == 8'h00);
|
||||
assert (byte'(y ? L1b1 : '1) == 8'h01);
|
||||
assert (byte'(y ? L1sb0 : '1) == 8'h00);
|
||||
assert (byte'(y ? L1sb1 : '1) == 8'h01);
|
||||
assert (byte'(y ? L2b00 : '1) == 8'h00);
|
||||
assert (byte'(y ? L2b01 : '1) == 8'h01);
|
||||
assert (byte'(y ? L2b10 : '1) == 8'h02);
|
||||
assert (byte'(y ? L2b11 : '1) == 8'h03);
|
||||
assert (byte'(y ? L2sb00 : '1) == 8'h00);
|
||||
assert (byte'(y ? L2sb01 : '1) == 8'h01);
|
||||
assert (byte'(y ? L2sb10 : '1) == 8'h02);
|
||||
assert (byte'(y ? L2sb11 : '1) == 8'h03);
|
||||
|
||||
assert (int'(y ? L1b0 : '1) == 32'h0000_0000);
|
||||
assert (int'(y ? L1b1 : '1) == 32'h0000_0001);
|
||||
assert (int'(y ? L1sb0 : '1) == 32'h0000_0000);
|
||||
assert (int'(y ? L1sb1 : '1) == 32'h0000_0001);
|
||||
assert (int'(y ? L2b00 : '1) == 32'h0000_0000);
|
||||
assert (int'(y ? L2b01 : '1) == 32'h0000_0001);
|
||||
assert (int'(y ? L2b10 : '1) == 32'h0000_0002);
|
||||
assert (int'(y ? L2b11 : '1) == 32'h0000_0003);
|
||||
assert (int'(y ? L2sb00 : '1) == 32'h0000_0000);
|
||||
assert (int'(y ? L2sb01 : '1) == 32'h0000_0001);
|
||||
assert (int'(y ? L2sb10 : '1) == 32'h0000_0002);
|
||||
assert (int'(y ? L2sb11 : '1) == 32'h0000_0003);
|
||||
|
||||
assert (s12bit_packed_struct_t'(y ? L1b0 : '1) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L1b1 : '1) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L1sb0 : '1) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L1sb1 : '1) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b00 : '1) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b01 : '1) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b10 : '1) == 12'h002);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b11 : '1) == 12'h003);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb00 : '1) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb01 : '1) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb10 : '1) == 12'h002);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb11 : '1) == 12'h003);
|
||||
|
||||
assert (3'(y ? L1b0 : '0) == 3'b000);
|
||||
assert (3'(y ? L1b1 : '0) == 3'b001);
|
||||
assert (3'(y ? L1sb0 : '0) == 3'b000);
|
||||
|
@ -110,6 +317,58 @@ module top;
|
|||
assert (3'(y ? L2sb10 : '0) == 3'b010);
|
||||
assert (3'(y ? L2sb11 : '0) == 3'b011);
|
||||
|
||||
assert (u3bit_t'(y ? L1b0 : '0) == 3'b000);
|
||||
assert (u3bit_t'(y ? L1b1 : '0) == 3'b001);
|
||||
assert (u3bit_t'(y ? L1sb0 : '0) == 3'b000);
|
||||
assert (u3bit_t'(y ? L1sb1 : '0) == 3'b001);
|
||||
assert (u3bit_t'(y ? L2b00 : '0) == 3'b000);
|
||||
assert (u3bit_t'(y ? L2b01 : '0) == 3'b001);
|
||||
assert (u3bit_t'(y ? L2b10 : '0) == 3'b010);
|
||||
assert (u3bit_t'(y ? L2b11 : '0) == 3'b011);
|
||||
assert (u3bit_t'(y ? L2sb00 : '0) == 3'b000);
|
||||
assert (u3bit_t'(y ? L2sb01 : '0) == 3'b001);
|
||||
assert (u3bit_t'(y ? L2sb10 : '0) == 3'b010);
|
||||
assert (u3bit_t'(y ? L2sb11 : '0) == 3'b011);
|
||||
|
||||
assert (byte'(y ? L1b0 : '0) == 8'h00);
|
||||
assert (byte'(y ? L1b1 : '0) == 8'h01);
|
||||
assert (byte'(y ? L1sb0 : '0) == 8'h00);
|
||||
assert (byte'(y ? L1sb1 : '0) == 8'h01);
|
||||
assert (byte'(y ? L2b00 : '0) == 8'h00);
|
||||
assert (byte'(y ? L2b01 : '0) == 8'h01);
|
||||
assert (byte'(y ? L2b10 : '0) == 8'h02);
|
||||
assert (byte'(y ? L2b11 : '0) == 8'h03);
|
||||
assert (byte'(y ? L2sb00 : '0) == 8'h00);
|
||||
assert (byte'(y ? L2sb01 : '0) == 8'h01);
|
||||
assert (byte'(y ? L2sb10 : '0) == 8'h02);
|
||||
assert (byte'(y ? L2sb11 : '0) == 8'h03);
|
||||
|
||||
assert (int'(y ? L1b0 : '0) == 32'h0000_0000);
|
||||
assert (int'(y ? L1b1 : '0) == 32'h0000_0001);
|
||||
assert (int'(y ? L1sb0 : '0) == 32'h0000_0000);
|
||||
assert (int'(y ? L1sb1 : '0) == 32'h0000_0001);
|
||||
assert (int'(y ? L2b00 : '0) == 32'h0000_0000);
|
||||
assert (int'(y ? L2b01 : '0) == 32'h0000_0001);
|
||||
assert (int'(y ? L2b10 : '0) == 32'h0000_0002);
|
||||
assert (int'(y ? L2b11 : '0) == 32'h0000_0003);
|
||||
assert (int'(y ? L2sb00 : '0) == 32'h0000_0000);
|
||||
assert (int'(y ? L2sb01 : '0) == 32'h0000_0001);
|
||||
assert (int'(y ? L2sb10 : '0) == 32'h0000_0002);
|
||||
assert (int'(y ? L2sb11 : '0) == 32'h0000_0003);
|
||||
|
||||
assert (s12bit_packed_struct_t'(y ? L1b0 : '0) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L1b1 : '0) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L1sb0 : '0) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L1sb1 : '0) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b00 : '0) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b01 : '0) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b10 : '0) == 12'h002);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b11 : '0) == 12'h003);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb00 : '0) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb01 : '0) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb10 : '0) == 12'h002);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb11 : '0) == 12'h003);
|
||||
|
||||
assert (3'(y ? L1b0 : 1'sb0) == 3'b000);
|
||||
assert (3'(y ? L1b1 : 1'sb0) == 3'b001);
|
||||
assert (3'(y ? L1sb0 : 1'sb0) == 3'b000);
|
||||
|
@ -123,6 +382,123 @@ module top;
|
|||
assert (3'(y ? L2sb10 : 1'sb0) == 3'b110);
|
||||
assert (3'(y ? L2sb11 : 1'sb0) == 3'b111);
|
||||
|
||||
assert (u3bit_t'(y ? L1b0 : 1'sb0) == 3'b000);
|
||||
assert (u3bit_t'(y ? L1b1 : 1'sb0) == 3'b001);
|
||||
assert (u3bit_t'(y ? L1sb0 : 1'sb0) == 3'b000);
|
||||
assert (u3bit_t'(y ? L1sb1 : 1'sb0) == 3'b111);
|
||||
assert (u3bit_t'(y ? L2b00 : 1'sb0) == 3'b000);
|
||||
assert (u3bit_t'(y ? L2b01 : 1'sb0) == 3'b001);
|
||||
assert (u3bit_t'(y ? L2b10 : 1'sb0) == 3'b010);
|
||||
assert (u3bit_t'(y ? L2b11 : 1'sb0) == 3'b011);
|
||||
assert (u3bit_t'(y ? L2sb00 : 1'sb0) == 3'b000);
|
||||
assert (u3bit_t'(y ? L2sb01 : 1'sb0) == 3'b001);
|
||||
assert (u3bit_t'(y ? L2sb10 : 1'sb0) == 3'b110);
|
||||
assert (u3bit_t'(y ? L2sb11 : 1'sb0) == 3'b111);
|
||||
|
||||
assert (byte'(y ? L1b0 : 1'sb0) == 8'h00);
|
||||
assert (byte'(y ? L1b1 : 1'sb0) == 8'h01);
|
||||
assert (byte'(y ? L1sb0 : 1'sb0) == 8'h00);
|
||||
assert (byte'(y ? L1sb1 : 1'sb0) == 8'hff);
|
||||
assert (byte'(y ? L2b00 : 1'sb0) == 8'h00);
|
||||
assert (byte'(y ? L2b01 : 1'sb0) == 8'h01);
|
||||
assert (byte'(y ? L2b10 : 1'sb0) == 8'h02);
|
||||
assert (byte'(y ? L2b11 : 1'sb0) == 8'h03);
|
||||
assert (byte'(y ? L2sb00 : 1'sb0) == 8'h00);
|
||||
assert (byte'(y ? L2sb01 : 1'sb0) == 8'h01);
|
||||
assert (byte'(y ? L2sb10 : 1'sb0) == 8'hfe);
|
||||
assert (byte'(y ? L2sb11 : 1'sb0) == 8'hff);
|
||||
|
||||
assert (int'(y ? L1b0 : 1'sb0) == 32'h0000_0000);
|
||||
assert (int'(y ? L1b1 : 1'sb0) == 32'h0000_0001);
|
||||
assert (int'(y ? L1sb0 : 1'sb0) == 32'h0000_0000);
|
||||
assert (int'(y ? L1sb1 : 1'sb0) == 32'hffff_ffff);
|
||||
assert (int'(y ? L2b00 : 1'sb0) == 32'h0000_0000);
|
||||
assert (int'(y ? L2b01 : 1'sb0) == 32'h0000_0001);
|
||||
assert (int'(y ? L2b10 : 1'sb0) == 32'h0000_0002);
|
||||
assert (int'(y ? L2b11 : 1'sb0) == 32'h0000_0003);
|
||||
assert (int'(y ? L2sb00 : 1'sb0) == 32'h0000_0000);
|
||||
assert (int'(y ? L2sb01 : 1'sb0) == 32'h0000_0001);
|
||||
assert (int'(y ? L2sb10 : 1'sb0) == 32'hffff_fffe);
|
||||
assert (int'(y ? L2sb11 : 1'sb0) == 32'hffff_ffff);
|
||||
|
||||
assert (s12bit_packed_struct_t'(y ? L1b0 : 1'sb0) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L1b1 : 1'sb0) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L1sb0 : 1'sb0) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L1sb1 : 1'sb0) == 12'hfff);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b00 : 1'sb0) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b01 : 1'sb0) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b10 : 1'sb0) == 12'h002);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b11 : 1'sb0) == 12'h003);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb00 : 1'sb0) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb01 : 1'sb0) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb10 : 1'sb0) == 12'hffe);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb11 : 1'sb0) == 12'hfff);
|
||||
|
||||
assert (3'(y ? L1b0 : s1bit_t'(0)) == 3'b000);
|
||||
assert (3'(y ? L1b1 : s1bit_t'(0)) == 3'b001);
|
||||
assert (3'(y ? L1sb0 : s1bit_t'(0)) == 3'b000);
|
||||
assert (3'(y ? L1sb1 : s1bit_t'(0)) == 3'b111);
|
||||
assert (3'(y ? L2b00 : s1bit_t'(0)) == 3'b000);
|
||||
assert (3'(y ? L2b01 : s1bit_t'(0)) == 3'b001);
|
||||
assert (3'(y ? L2b10 : s1bit_t'(0)) == 3'b010);
|
||||
assert (3'(y ? L2b11 : s1bit_t'(0)) == 3'b011);
|
||||
assert (3'(y ? L2sb00 : s1bit_t'(0)) == 3'b000);
|
||||
assert (3'(y ? L2sb01 : s1bit_t'(0)) == 3'b001);
|
||||
assert (3'(y ? L2sb10 : s1bit_t'(0)) == 3'b110);
|
||||
assert (3'(y ? L2sb11 : s1bit_t'(0)) == 3'b111);
|
||||
|
||||
assert (u3bit_t'(y ? L1b0 : s1bit_t'(0)) == 3'b000);
|
||||
assert (u3bit_t'(y ? L1b1 : s1bit_t'(0)) == 3'b001);
|
||||
assert (u3bit_t'(y ? L1sb0 : s1bit_t'(0)) == 3'b000);
|
||||
assert (u3bit_t'(y ? L1sb1 : s1bit_t'(0)) == 3'b111);
|
||||
assert (u3bit_t'(y ? L2b00 : s1bit_t'(0)) == 3'b000);
|
||||
assert (u3bit_t'(y ? L2b01 : s1bit_t'(0)) == 3'b001);
|
||||
assert (u3bit_t'(y ? L2b10 : s1bit_t'(0)) == 3'b010);
|
||||
assert (u3bit_t'(y ? L2b11 : s1bit_t'(0)) == 3'b011);
|
||||
assert (u3bit_t'(y ? L2sb00 : s1bit_t'(0)) == 3'b000);
|
||||
assert (u3bit_t'(y ? L2sb01 : s1bit_t'(0)) == 3'b001);
|
||||
assert (u3bit_t'(y ? L2sb10 : s1bit_t'(0)) == 3'b110);
|
||||
assert (u3bit_t'(y ? L2sb11 : s1bit_t'(0)) == 3'b111);
|
||||
|
||||
assert (byte'(y ? L1b0 : s1bit_t'(0)) == 8'h00);
|
||||
assert (byte'(y ? L1b1 : s1bit_t'(0)) == 8'h01);
|
||||
assert (byte'(y ? L1sb0 : s1bit_t'(0)) == 8'h00);
|
||||
assert (byte'(y ? L1sb1 : s1bit_t'(0)) == 8'hff);
|
||||
assert (byte'(y ? L2b00 : s1bit_t'(0)) == 8'h00);
|
||||
assert (byte'(y ? L2b01 : s1bit_t'(0)) == 8'h01);
|
||||
assert (byte'(y ? L2b10 : s1bit_t'(0)) == 8'h02);
|
||||
assert (byte'(y ? L2b11 : s1bit_t'(0)) == 8'h03);
|
||||
assert (byte'(y ? L2sb00 : s1bit_t'(0)) == 8'h00);
|
||||
assert (byte'(y ? L2sb01 : s1bit_t'(0)) == 8'h01);
|
||||
assert (byte'(y ? L2sb10 : s1bit_t'(0)) == 8'hfe);
|
||||
assert (byte'(y ? L2sb11 : s1bit_t'(0)) == 8'hff);
|
||||
|
||||
assert (int'(y ? L1b0 : s1bit_t'(0)) == 32'h0000_0000);
|
||||
assert (int'(y ? L1b1 : s1bit_t'(0)) == 32'h0000_0001);
|
||||
assert (int'(y ? L1sb0 : s1bit_t'(0)) == 32'h0000_0000);
|
||||
assert (int'(y ? L1sb1 : s1bit_t'(0)) == 32'hffff_ffff);
|
||||
assert (int'(y ? L2b00 : s1bit_t'(0)) == 32'h0000_0000);
|
||||
assert (int'(y ? L2b01 : s1bit_t'(0)) == 32'h0000_0001);
|
||||
assert (int'(y ? L2b10 : s1bit_t'(0)) == 32'h0000_0002);
|
||||
assert (int'(y ? L2b11 : s1bit_t'(0)) == 32'h0000_0003);
|
||||
assert (int'(y ? L2sb00 : s1bit_t'(0)) == 32'h0000_0000);
|
||||
assert (int'(y ? L2sb01 : s1bit_t'(0)) == 32'h0000_0001);
|
||||
assert (int'(y ? L2sb10 : s1bit_t'(0)) == 32'hffff_fffe);
|
||||
assert (int'(y ? L2sb11 : s1bit_t'(0)) == 32'hffff_ffff);
|
||||
|
||||
assert (s12bit_packed_struct_t'(y ? L1b0 : s1bit_t'(0)) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L1b1 : s1bit_t'(0)) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L1sb0 : s1bit_t'(0)) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L1sb1 : s1bit_t'(0)) == 12'hfff);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b00 : s1bit_t'(0)) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b01 : s1bit_t'(0)) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b10 : s1bit_t'(0)) == 12'h002);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b11 : s1bit_t'(0)) == 12'h003);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb00 : s1bit_t'(0)) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb01 : s1bit_t'(0)) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb10 : s1bit_t'(0)) == 12'hffe);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb11 : s1bit_t'(0)) == 12'hfff);
|
||||
|
||||
assert (3'(y ? L1b0 : 1'sb1) == 3'b000);
|
||||
assert (3'(y ? L1b1 : 1'sb1) == 3'b001);
|
||||
assert (3'(y ? L1sb0 : 1'sb1) == 3'b000);
|
||||
|
@ -136,5 +512,122 @@ module top;
|
|||
assert (3'(y ? L2sb10 : 1'sb1) == 3'b110);
|
||||
assert (3'(y ? L2sb11 : 1'sb1) == 3'b111);
|
||||
|
||||
assert (u3bit_t'(y ? L1b0 : 1'sb1) == 3'b000);
|
||||
assert (u3bit_t'(y ? L1b1 : 1'sb1) == 3'b001);
|
||||
assert (u3bit_t'(y ? L1sb0 : 1'sb1) == 3'b000);
|
||||
assert (u3bit_t'(y ? L1sb1 : 1'sb1) == 3'b111);
|
||||
assert (u3bit_t'(y ? L2b00 : 1'sb1) == 3'b000);
|
||||
assert (u3bit_t'(y ? L2b01 : 1'sb1) == 3'b001);
|
||||
assert (u3bit_t'(y ? L2b10 : 1'sb1) == 3'b010);
|
||||
assert (u3bit_t'(y ? L2b11 : 1'sb1) == 3'b011);
|
||||
assert (u3bit_t'(y ? L2sb00 : 1'sb1) == 3'b000);
|
||||
assert (u3bit_t'(y ? L2sb01 : 1'sb1) == 3'b001);
|
||||
assert (u3bit_t'(y ? L2sb10 : 1'sb1) == 3'b110);
|
||||
assert (u3bit_t'(y ? L2sb11 : 1'sb1) == 3'b111);
|
||||
|
||||
assert (byte'(y ? L1b0 : 1'sb1) == 8'h00);
|
||||
assert (byte'(y ? L1b1 : 1'sb1) == 8'h01);
|
||||
assert (byte'(y ? L1sb0 : 1'sb1) == 8'h00);
|
||||
assert (byte'(y ? L1sb1 : 1'sb1) == 8'hff);
|
||||
assert (byte'(y ? L2b00 : 1'sb1) == 8'h00);
|
||||
assert (byte'(y ? L2b01 : 1'sb1) == 8'h01);
|
||||
assert (byte'(y ? L2b10 : 1'sb1) == 8'h02);
|
||||
assert (byte'(y ? L2b11 : 1'sb1) == 8'h03);
|
||||
assert (byte'(y ? L2sb00 : 1'sb1) == 8'h00);
|
||||
assert (byte'(y ? L2sb01 : 1'sb1) == 8'h01);
|
||||
assert (byte'(y ? L2sb10 : 1'sb1) == 8'hfe);
|
||||
assert (byte'(y ? L2sb11 : 1'sb1) == 8'hff);
|
||||
|
||||
assert (int'(y ? L1b0 : 1'sb1) == 32'h0000_0000);
|
||||
assert (int'(y ? L1b1 : 1'sb1) == 32'h0000_0001);
|
||||
assert (int'(y ? L1sb0 : 1'sb1) == 32'h0000_0000);
|
||||
assert (int'(y ? L1sb1 : 1'sb1) == 32'hffff_ffff);
|
||||
assert (int'(y ? L2b00 : 1'sb1) == 32'h0000_0000);
|
||||
assert (int'(y ? L2b01 : 1'sb1) == 32'h0000_0001);
|
||||
assert (int'(y ? L2b10 : 1'sb1) == 32'h0000_0002);
|
||||
assert (int'(y ? L2b11 : 1'sb1) == 32'h0000_0003);
|
||||
assert (int'(y ? L2sb00 : 1'sb1) == 32'h0000_0000);
|
||||
assert (int'(y ? L2sb01 : 1'sb1) == 32'h0000_0001);
|
||||
assert (int'(y ? L2sb10 : 1'sb1) == 32'hffff_fffe);
|
||||
assert (int'(y ? L2sb11 : 1'sb1) == 32'hffff_ffff);
|
||||
|
||||
assert (s12bit_packed_struct_t'(y ? L1b0 : 1'sb1) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L1b1 : 1'sb1) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L1sb0 : 1'sb1) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L1sb1 : 1'sb1) == 12'hfff);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b00 : 1'sb1) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b01 : 1'sb1) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b10 : 1'sb1) == 12'h002);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b11 : 1'sb1) == 12'h003);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb00 : 1'sb1) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb01 : 1'sb1) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb10 : 1'sb1) == 12'hffe);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb11 : 1'sb1) == 12'hfff);
|
||||
|
||||
assert (3'(y ? L1b0 : s1bit_t'(1)) == 3'b000);
|
||||
assert (3'(y ? L1b1 : s1bit_t'(1)) == 3'b001);
|
||||
assert (3'(y ? L1sb0 : s1bit_t'(1)) == 3'b000);
|
||||
assert (3'(y ? L1sb1 : s1bit_t'(1)) == 3'b111);
|
||||
assert (3'(y ? L2b00 : s1bit_t'(1)) == 3'b000);
|
||||
assert (3'(y ? L2b01 : s1bit_t'(1)) == 3'b001);
|
||||
assert (3'(y ? L2b10 : s1bit_t'(1)) == 3'b010);
|
||||
assert (3'(y ? L2b11 : s1bit_t'(1)) == 3'b011);
|
||||
assert (3'(y ? L2sb00 : s1bit_t'(1)) == 3'b000);
|
||||
assert (3'(y ? L2sb01 : s1bit_t'(1)) == 3'b001);
|
||||
assert (3'(y ? L2sb10 : s1bit_t'(1)) == 3'b110);
|
||||
assert (3'(y ? L2sb11 : s1bit_t'(1)) == 3'b111);
|
||||
|
||||
assert (u3bit_t'(y ? L1b0 : s1bit_t'(1)) == 3'b000);
|
||||
assert (u3bit_t'(y ? L1b1 : s1bit_t'(1)) == 3'b001);
|
||||
assert (u3bit_t'(y ? L1sb0 : s1bit_t'(1)) == 3'b000);
|
||||
assert (u3bit_t'(y ? L1sb1 : s1bit_t'(1)) == 3'b111);
|
||||
assert (u3bit_t'(y ? L2b00 : s1bit_t'(1)) == 3'b000);
|
||||
assert (u3bit_t'(y ? L2b01 : s1bit_t'(1)) == 3'b001);
|
||||
assert (u3bit_t'(y ? L2b10 : s1bit_t'(1)) == 3'b010);
|
||||
assert (u3bit_t'(y ? L2b11 : s1bit_t'(1)) == 3'b011);
|
||||
assert (u3bit_t'(y ? L2sb00 : s1bit_t'(1)) == 3'b000);
|
||||
assert (u3bit_t'(y ? L2sb01 : s1bit_t'(1)) == 3'b001);
|
||||
assert (u3bit_t'(y ? L2sb10 : s1bit_t'(1)) == 3'b110);
|
||||
assert (u3bit_t'(y ? L2sb11 : s1bit_t'(1)) == 3'b111);
|
||||
|
||||
assert (byte'(y ? L1b0 : s1bit_t'(1)) == 8'h00);
|
||||
assert (byte'(y ? L1b1 : s1bit_t'(1)) == 8'h01);
|
||||
assert (byte'(y ? L1sb0 : s1bit_t'(1)) == 8'h00);
|
||||
assert (byte'(y ? L1sb1 : s1bit_t'(1)) == 8'hff);
|
||||
assert (byte'(y ? L2b00 : s1bit_t'(1)) == 8'h00);
|
||||
assert (byte'(y ? L2b01 : s1bit_t'(1)) == 8'h01);
|
||||
assert (byte'(y ? L2b10 : s1bit_t'(1)) == 8'h02);
|
||||
assert (byte'(y ? L2b11 : s1bit_t'(1)) == 8'h03);
|
||||
assert (byte'(y ? L2sb00 : s1bit_t'(1)) == 8'h00);
|
||||
assert (byte'(y ? L2sb01 : s1bit_t'(1)) == 8'h01);
|
||||
assert (byte'(y ? L2sb10 : s1bit_t'(1)) == 8'hfe);
|
||||
assert (byte'(y ? L2sb11 : s1bit_t'(1)) == 8'hff);
|
||||
|
||||
assert (int'(y ? L1b0 : s1bit_t'(1)) == 32'h0000_0000);
|
||||
assert (int'(y ? L1b1 : s1bit_t'(1)) == 32'h0000_0001);
|
||||
assert (int'(y ? L1sb0 : s1bit_t'(1)) == 32'h0000_0000);
|
||||
assert (int'(y ? L1sb1 : s1bit_t'(1)) == 32'hffff_ffff);
|
||||
assert (int'(y ? L2b00 : s1bit_t'(1)) == 32'h0000_0000);
|
||||
assert (int'(y ? L2b01 : s1bit_t'(1)) == 32'h0000_0001);
|
||||
assert (int'(y ? L2b10 : s1bit_t'(1)) == 32'h0000_0002);
|
||||
assert (int'(y ? L2b11 : s1bit_t'(1)) == 32'h0000_0003);
|
||||
assert (int'(y ? L2sb00 : s1bit_t'(1)) == 32'h0000_0000);
|
||||
assert (int'(y ? L2sb01 : s1bit_t'(1)) == 32'h0000_0001);
|
||||
assert (int'(y ? L2sb10 : s1bit_t'(1)) == 32'hffff_fffe);
|
||||
assert (int'(y ? L2sb11 : s1bit_t'(1)) == 32'hffff_ffff);
|
||||
|
||||
assert (s12bit_packed_struct_t'(y ? L1b0 : s1bit_t'(1)) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L1b1 : s1bit_t'(1)) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L1sb0 : s1bit_t'(1)) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L1sb1 : s1bit_t'(1)) == 12'hfff);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b00 : s1bit_t'(1)) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b01 : s1bit_t'(1)) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b10 : s1bit_t'(1)) == 12'h002);
|
||||
assert (s12bit_packed_struct_t'(y ? L2b11 : s1bit_t'(1)) == 12'h003);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb00 : s1bit_t'(1)) == 12'h000);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb01 : s1bit_t'(1)) == 12'h001);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb10 : s1bit_t'(1)) == 12'hffe);
|
||||
assert (s12bit_packed_struct_t'(y ? L2sb11 : s1bit_t'(1)) == 12'hfff);
|
||||
|
||||
end
|
||||
endmodule
|
||||
|
|
Loading…
Reference in New Issue