AUTOASCIIENUM
AUTOINOUTMODULE
AUTOTIEOFF
AUTOUNUSED
AUTOINSERTLISP
AUTO_TEMPLATE
AUTOINSTPARAM
과 같은 AUTOx가 있습니다.
이중에서 AUTOASCIIENUM이 좋은넘인데요
Verilog는 VHDL과 틀려서 변수를 Char로 표시하는 것이 만만찮습니다.
ENUM String을 지원하지 않아서 생긴 문제입니다.
이것때문에 디버깅시에 머리속에서 상수값을 다시 ASCII로 변환하면서 일일이 디버깅해야 하는데
요런 문제를 해결하기 위해서 나온 AUTOx가 AUTOASCIIENUM 입니다.
//== State enumeration
parameter [2:0] // synopsys enum state_info
SM_IDLE = 3'b000,
SM_SEND = 3'b001,
SM_WAIT1 = 3'b010;
//== State variables
reg [2:0] /* synopsys enum state_info */
state_r; /* synopsys state_vector state_r */
reg [2:0] /* synopsys enum state_info */
state_e1;
//== ASCII state decoding
/*AUTOASCIIENUM("state_r", "_stateascii_r", "sm_")*/
위의 코드를 AUTOx로 변환시키면
//== ASCII state decoding
/*AUTOASCIIENUM("state_r", "_stateascii_r", "sm_")*/
// Beginning of automatic ASCII enum decoding
reg [39:0] _stateascii_r; // Decode of state_r
always @(state_r) begin
casex ({state_r}) // synopsys full_case parallel_case
SM_IDLE: _stateascii_r = "idle ";
SM_SEND: _stateascii_r = "send ";
SM_WAIT1: _stateascii_r = "wait1";
default: _stateascii_r = "%Erro";
endcase
end
// End of automatics
위와 같이 됩니다. 따라서 state_r이라는 값을 모니터링하면 현재 상테를 추적해 갈 수 있습니다.
--------------------------------
요새 거의 뜸했던
간만에 하는 ASIC 관련 포스팅이었습니다.
'ASIC SoC' 카테고리의 다른 글
맥에서 Verilog Simulation 하기 (2) (0) | 2010.11.13 |
---|---|
맥에서 Verilog Simulation 하기 (0) | 2010.11.13 |
사상 최강의 보드 (2) | 2010.04.18 |
[MIPS] MIPS assembler simulator XSPIM (8) | 2010.03.21 |
HD Quad Display/Processing Engine (1) | 2010.03.12 |