У меня есть следующий код в verilog:
reg [5:0] a;
reg [5:0] shift_amt;
reg [63:0] mysig;
assign shift_amt = (a + 1) & 6'h3f;
assign mysig = 1 << shift_amt;
Когда я запускаю Spyglass, я получаю следующую ошибку:
Беззнаковое выражение 'mysig' используется со знакомым выражением '( 1 << shift_amt) 'в назначении. </strong>
У меня ничего не помечено как signed или unsigned , и я пробовал несколько способов переписать этот оператор , и даже завернутый попробовал $ unsigned (1 << shift_amt) </strong>, но по какой-то причине мой результат для mysig стал 0 для тестового примера, который я использовал where a = 39 .