회사에서는 자일링스사의 FPGA를 쓰는데.....자일링스에는 ChipScope라는게 있다. 몇일전에 어떻게 사용하지는 배웠는데....이게 뭐하는 거냐면 일종의 Logic Analyzer다. FPGA에서 내 디자인이 동작할 때 FPGA 내부의 특정 신호를 샘플링해서 PC에서 볼 수 있도록 뿌려준다. 그러니까 내부 시그널을 밖에서 볼 수 있도록 해준다 이거다능. 써보니까 정말 조터라능. 그런데 난 집에서는 알테라 FPGA를 가지고 논다. -_-;;
좀 찾아보니까 알테라 FPGA에도 그것고 똑같은게 있떠라능. 그게 SignalTap II 다.
동작원리는 잘 모르겠지만....대충 이런거 같다. FPGA 내부의 여분의 공간에 logic analyzer 로직과 block ram을 추가해주고(툴이 해준다) FPGA에서 동작할때 trigger에 맞춰서 block ram에 샘플링된 데이타를 담아두고 JTAG으로 PC에 쏴주는거 같다.
아님말구 -_-;
아무튼 SignalTap II 를 어떻게 사용하는지 좀 보자능. 쉽다. 원래 하던데로 쿼터스로 프로젝트를 만들고....아래 코드를 복붙하자(8비트 카운터다). FPGA에서 돌려야 되니까...Device 설정이랑 Pin assignment 까지 다 해주고 Sysnthesis 까지만 돌리자.
그 담에 Tools 메뉴에서 SignalTap II Logic Analyzer 를 눌른다. 그럼 다음 그림과 같은 화면이 뜰탠데....일단 보드에 전원을 넣고 PC와 연결을 한다. 우상단의 JTAG chain configuration에서 Hardware를 적당히 선택한다. 내 경우에는 USB-Blaster다. (그런데 따른거 쓰는 사람도 있나여? 뿌우 'ㅅ')
그 다음 밑에 Signal configuration에서 Clock를 설정해 준다. 이 클럭으로 데이타를 샘플링하게 된다. 디자인에 사용하는 메인 클락으로 고르자. 그러니까 clk를 고르자는 말이다. 그다음 sample depth를 적당히 골라주자. 설정한 클럭이 sample depth 횟수만큼 뛸 동안 설정한 데이터를 샘플링하게 된다. 너무 많이 잡아서 내부 블럭램 사이즈를 넘어가 버리면 합성이 안된다. 적당히 하자.
그 다음 trigger를 설정하자. 샘플링을 시작할 조건을 설정하는 거다. 우리는 enable이 high가 됐을 때로 설정하자능. 그리고 샘플링할 시그널도 설정한다. 뭐 다른거 볼꺼있나. counter의 출력 out를 설정하도록 하자능. Data enable이랑 Trigger enable를 아래 그림처럼 적당히 설정해주고...Signal Tap II 프로젝트를 저장한다.
그다음 쿼터스 화면으로 돌아가서 컴파일을 다시 한다. 그런데...나는 라이센스가 incremental compilation를 지원하지 않아서 컴파일이 안된다네 읭읭 -_-;;;;
아무튼 컴파일이 되는 사람들은 생성된 sof로 fpga 프로그래밍을 해서 카운터를 FPGA에서 돌리자. 다시 Signal Tap II로 돌아가서 Run Analysis를 누른다. 그 다음 enable를 할당해 놓은 스위치를 high로 올리면 샘플링이 시작된다. Data 탭을 누르면 샘플링된 데이타를 볼 수 있다. 난 볼 수 없었따 -_-;;
설정을 좀 만지만 될꺼 같은데.....읭읭 ㅠ.ㅠ
ps.
포스팅후에 검색을 좀 해보니까
SignalTap can tap two different types of signals, post-fitting and pre-shynthesis. Tapping post-fitting signals requires incremental compilation, which is not available in the Web edition.
Make sure the nodes you add to your STP file are pre-synthesis signals. You use the Node Finder filter to select "Signal Tap II: pre-synthesis".
이런말이 있다.그래서 "Signal Tap II: pre-synthesis"에 있는 시그널만 탭핑하도록 해도 컴파일 못한다구 징징된다.
잘 만지니까 됐다.
좀 찾아보니까 알테라 FPGA에도 그것고 똑같은게 있떠라능. 그게 SignalTap II 다.
동작원리는 잘 모르겠지만....대충 이런거 같다. FPGA 내부의 여분의 공간에 logic analyzer 로직과 block ram을 추가해주고(툴이 해준다) FPGA에서 동작할때 trigger에 맞춰서 block ram에 샘플링된 데이타를 담아두고 JTAG으로 PC에 쏴주는거 같다.
아님말구 -_-;
아무튼 SignalTap II 를 어떻게 사용하는지 좀 보자능. 쉽다. 원래 하던데로 쿼터스로 프로젝트를 만들고....아래 코드를 복붙하자(8비트 카운터다). FPGA에서 돌려야 되니까...Device 설정이랑 Pin assignment 까지 다 해주고 Sysnthesis 까지만 돌리자.
module signal_trap(
out , // Output of the counter
data , // Parallel load for the counter
load , // Parallel load enable
enable , // Enable counting
clk , // clock input
reset // reset input
);
//----------Output Ports--------------
output [7:0] out;
//------------Input Ports--------------
input [7:0] data;
input load, enable, clk, reset;
//------------Internal Variables--------
reg [7:0] out;
//-------------Code Starts Here-------
always @(posedge clk) begin
if (reset) begin
out <= 8'b0 ;
end else if (load) begin
out <= data;
end else if (enable) begin
out <= out + 1;
end
end
endmodule
|
그 담에 Tools 메뉴에서 SignalTap II Logic Analyzer 를 눌른다. 그럼 다음 그림과 같은 화면이 뜰탠데....일단 보드에 전원을 넣고 PC와 연결을 한다. 우상단의 JTAG chain configuration에서 Hardware를 적당히 선택한다. 내 경우에는 USB-Blaster다. (그런데 따른거 쓰는 사람도 있나여? 뿌우 'ㅅ')
그 다음 밑에 Signal configuration에서 Clock를 설정해 준다. 이 클럭으로 데이타를 샘플링하게 된다. 디자인에 사용하는 메인 클락으로 고르자. 그러니까 clk를 고르자는 말이다. 그다음 sample depth를 적당히 골라주자. 설정한 클럭이 sample depth 횟수만큼 뛸 동안 설정한 데이터를 샘플링하게 된다. 너무 많이 잡아서 내부 블럭램 사이즈를 넘어가 버리면 합성이 안된다. 적당히 하자.
그 다음 trigger를 설정하자. 샘플링을 시작할 조건을 설정하는 거다. 우리는 enable이 high가 됐을 때로 설정하자능. 그리고 샘플링할 시그널도 설정한다. 뭐 다른거 볼꺼있나. counter의 출력 out를 설정하도록 하자능. Data enable이랑 Trigger enable를 아래 그림처럼 적당히 설정해주고...Signal Tap II 프로젝트를 저장한다.
그다음 쿼터스 화면으로 돌아가서 컴파일을 다시 한다. 그런데...나는 라이센스가 incremental compilation를 지원하지 않아서 컴파일이 안된다네 읭읭 -_-;;;;
아무튼 컴파일이 되는 사람들은 생성된 sof로 fpga 프로그래밍을 해서 카운터를 FPGA에서 돌리자. 다시 Signal Tap II로 돌아가서 Run Analysis를 누른다. 그 다음 enable를 할당해 놓은 스위치를 high로 올리면 샘플링이 시작된다. Data 탭을 누르면 샘플링된 데이타를 볼 수 있다. 난 볼 수 없었따 -_-;;
설정을 좀 만지만 될꺼 같은데.....읭읭 ㅠ.ㅠ
ps.
포스팅후에 검색을 좀 해보니까
SignalTap can tap two different types of signals, post-fitting and pre-shynthesis. Tapping post-fitting signals requires incremental compilation, which is not available in the Web edition.
Make sure the nodes you add to your STP file are pre-synthesis signals. You use the Node Finder filter to select "Signal Tap II: pre-synthesis".
이런말이 있다.
잘 만지니까 됐다.
'디지털 논리 회로' 카테고리의 다른 글
| Altera SignalTap II embedded Logic Analyzer Tutorial (0) | 2010/02/06 |
|---|---|
| 캐리 저장 가산기(Carry Save Adder) (0) | 2008/03/01 |
| 산술연산 알고리즘 (0) | 2008/01/30 |


댓글을 달아 주세요