เนื่องจากข้อผิดพลาดในการเข้ารหัส RTL ในโค้ด Intel® PAC N3000 RTL ที่ให้มา เมื่อพอร์ตหนึ่งได้รับเฟรมหยุดชั่วคราว พอร์ตทั้งหมดจะหยุดการส่งชั่วคราว การดําเนินการที่คาดไว้มีไว้สําหรับพอร์ตที่ได้รับเฟรมหยุดชั่วคราวเพื่อหยุดการส่งชั่วคราว
หากต้องการแก้ไขปัญหาข้อผิดพลาดในการเข้ารหัส RTL นี้ ให้แก้ไขไฟล์ SystemVerilog n3000_1_3_v1.5.7/Factory/hw/pac/eth_wrapper/rtl/eth_demux_logic.sv
จาก:
always_ff @(posedge clk หรือ posedge rst) เริ่มขึ้น
ถ้า (rst) เริ่มต้น
i_avst.ready <= '0;
สิ้น สุด
อย่างอื่นเริ่มต้น
i_avst.ready <= &wire_ready
สิ้น สุด
สิ้น สุด
แก้ไข:
เริ่มalways_comb
case({rg_i_avst_valid,rg_i_avst_channel})
100 : wire_ready_o = wire_ready[0]
101 : wire_ready_o = wire_ready[1]
110 : wire_ready_o = wire_ready[2]
111 : wire_ready_o = wire_ready[3]
ค่าเริ่มต้น : wire_ready_o = 1'b1;
เอนด์เคส
สิ้น สุด
always_ff @(posedge clk หรือ posedge rst) เริ่มขึ้น
ถ้า (rst) เริ่มต้น
i_avst.ready <= '0;
สิ้น สุด
อย่างอื่นเริ่มต้น
i_avst.ready <= &wire_ready
i_avst.ready <= wire_ready_o;
สิ้น สุด
สิ้น สุด
บันทึกไฟล์ที่แก้ไขและสร้างภาพFPGA N3000 ใหม่
วางแผนให้แก้ไขข้อผิดพลาดของการเข้ารหัสนี้ในซอฟต์แวร์ N3000 ในอนาคต