โดยพื้นฐานแล้วฉันกำลังพยายามแสดงผลรวมหรือผลคูณของตัวเลขสองตัว (ป้อนโดยใช้สวิตช์บน FPGA) บนจอแสดงผล 7 ส่วน ฉันรู้ว่าทั้งบิตการบวกและการคูณทำงานได้ดี เนื่องจากฉันได้ทดสอบแยกกัน
ฉันมีปัญหากับ LSB ไม่ว่าจะใช้ค่าเริ่มต้นเป็น F ก็ตามและไม่เคยเปลี่ยนแปลงเลย ฉันคิดว่า Verilog ไม่อนุญาตให้ฉันแก้ไขทั้ง Cout1 และ Cout0 ในคำสั่ง case เดียวกัน มีวิธีแก้ไขปัญหานี้หรือไม่? ดูรหัสของฉันด้านล่าง
always@*
if (key1press)
casex(PrintSum)
// Hex 1 (MSB)
// Works!
5'b0xxxx : Cout1 = 7'b1000000; //0 if S[4] = 0
5'b1xxxx : Cout1 = 7'b1111001; //1 if S[4] = 1
// Hex 0 (LSB)
// Doesn't work :(
5'bx0000 : Cout0 = 7'b1000000; //0
...
5'bx1111 : Cout0 = 7'b0001110; //F
//default : begin
// Cout1 = 7'b1000000; //0 by default
// Cout0 = 7'b1000000; //0 by default
//end
endcase
ขอบคุณล่วงหน้าทุกคน :)