Как отображать текст в кривых в моделях
У меня есть сигнал reg [1:0] BRESP
соответствует 4 строковым значениям: okay
, exokay
, slverr
, decerr
,
Как я могу отобразить эти значения в форме сигнала в сигнале BRESP
?
2 ответа
Это зависит от симулятора. У некоторых есть аргументы, которые могут обнаруживать автоматы в вашем проекте и отображать имя состояния автомата на форме сигнала (например, ModelSim). Xilinx ISim не имеет этой функции (возможно, в новых версиях это реализовано, о чем я не знаю).
Я собираюсь дать универсальное решение независимо от того, какой у вас симулятор:
Сначала определите фиксированное количество символов для отображения названий состояний. Обычно 10 символов достаточно, затем объявите 10 8-битных регистров для хранения этих символов:
reg [3:0] current_state; // Assuming a 4-bit state memory that supports 16 number of states.
reg [3:0] next_state;
reg [10*8-1:0] current_state_text; // 10 x 8-bit registers
reg [10*8-1:0] next_state_text;
always @ (posedge Clock or negedge Reset)
begin: STATE_MEMORY
if (!Reset) begin
current_state <= STATE_RESRT;
current_state_text <= "*****RESET"; // This text MUST be 10 characters
// I put starts (*) but you should replace it with 5 spaces
end
else begin
current_state <= next_state;
current_state_text <= next_state_text;
end
end
// Now every time you want to change the state, change the state text also like above.
В программе моделирования установите систему счисленияcurrent_state_text
иnext_state_text
сигналы в ASCII.