embeded/FPGA - ALTERA2018. 6. 28. 16:24

책에서 본거 처럼(구버전 기준이긴 했지만)

최대 작동 클럭이 rpm 미터 처럼 똭 뜨지 않아서 찾아 보는중


timequest는 구버전에서의 time analzyer의 상품명(?) 이런건가?

The TimeQuest timing analyzer is a powerful ASIC-style timing analysis tool that validates the timing performance of all logic in a design using industry standard constraint, analysis, and reporting methodology 


Synopsis Design Constraints (SDC)

tool command language (Tcl)

[링크 : https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/manual/mnl_sdctmq.pdf]


먼가 찾아서 막 누르다 보니 이런게 나오네 -ㅁ-?

[링크 : ftp://ftp.altera.com/up/pub/Intel_Material/15.1/Tutorials/VHDL/Timequest.pdf]

[링크 : https://www.altera.com/en_US/pdfs/literature/ug/ug_tq_tutorial.pdf]


암튼 현재로서는 Timing Analyzer로만 표기가 된다.


컴파일 하다 보면 아래와 같은 Timing Analyzer 항목이 보이는데


타이밍 모델은 온도에 따른 작동 속도가 있고

speed grade별로 시뮬레이션을 하는데 영향을 주는 요소인 것으로 보인다.

speed grade / supply voltage / junction temperature

 Intel FPGAs must operate in a continuum of conditions. 

 These conditions include the die junction temperature, which varies depending upon the design's requirements. Commercial parts have a legal range of 0°C to 85°C and industrial parts have a legal range of -40°C to 100°C. There are even wider temperature ranges, such as those for automotive and military devices. 

 Another aspect of the operating conditions is the voltage supply levels. The most critical voltages for maintaining FPGA performance is the Vcc and the various I/O supplies. Each of the supply voltages has a legal operating range. For example, a subset of Stratix® IV FPGAs has a valid Vcc range of 0.87 V to 0.93 V. 

 The third aspect of the operating conditions is the relative speed of each FPGA versus the limit of the speed grade with which it is marked. This is one aspect that the designer has no control over. It should also be noted that devices within one speed grade can still differ slightly in performance, predominantly due to variation in the manufacturing process. All devices, however, are guaranteed to be faster than the limit of the speed grade.

[링크 : https://www.altera.com/en_US/pdfs/literature/wp/wp-01139-timing-model.pdf]

'embeded > FPGA - ALTERA' 카테고리의 다른 글

APEX FPGA quartus 지원 버전  (0) 2020.06.22
지름신 쫒아내기  (0) 2020.06.19
altera quartus2 simulation 도움말  (0) 2018.06.28
modelsim 시뮬레이션과 initial  (0) 2018.06.27
modelsim 길이 측정하기  (0) 2018.06.27
Posted by 구차니
이론 관련/전기 전자2018. 6. 28. 15:55

timequest 관련 보다 보니 slack 어쩌구 나오길래 검색



디지털 회로에서 여러가지 전기적(?) 특성이 있는데 어떻게 보면

setup time는 전압 변화에 필요한 시간(+안정될때 까지 시간_

hold time는 읽는 측에서 읽는데 필요한 시간

slack time은 사이클에서 여유 시간

(즉, 이게 0이 되면 hold time에 걸리거나 setup time에 걸려서 정상작동 하지 않는?)


[링크 : https://www.nandland.com/articles/setup-and-hold-time-in-an-fpga.html]

[링크 : http://fpga.tistory.com/30] setup, hold

[링크 : http://fpga.tistory.com/40] slack




'이론 관련 > 전기 전자' 카테고리의 다른 글

PDM과 DSD  (0) 2019.03.30
pdm - Pulse Width Modulation  (0) 2019.03.29
vga 출력 Hsync, Vsync 파형  (0) 2018.06.08
color bar (BT.471-1)  (0) 2018.06.05
자이로 드리프트  (0) 2018.05.15
Posted by 구차니
embeded/FPGA - ALTERA2018. 6. 28. 14:21

C:\intelFPGA_lite\18.0\quartus\common\help

경로에 pdf로 존재한다.


tutorial_quartusii_simulation_verilog.pdf

내용을 정리하자면


Step 1. Quartus2에서 New 하고 나서 Verification/Debugging Files에 

University Program VWF를 선택하여 추가


Step 2. 아래와 같은 시뮬레이션 웨이브폼 에디터가 똭!


Step 3. 우측 패널에 우클릭하여 노드나 버스를 추가하는데


Step 4. 수동으로 추가는 불가능하고 "Node Finder"를 통해서 찾아서 추가해야 한다.


Step 5. 처음에는 아무것도 안나오는데 List를 누르면 전체 핀 목록이 뜬다.


Step 6. 모니터링 할 노드들을 추가해주고 나면 아래와 같이 뜨는데

일단 클럭이 있어야 작동하는 녀석들이 많으니 위에 시계모양 아이콘을 누르면(Overwrite Clock)


Step 7. 클럭을 쓸수 있는데 망할(?) Hz 단위가 아니라 시간 단위니 적절히 계산해서 넣어준다

(50MHz는 Period 20ns)


Step 8. 그럼 아래와 같이 클럭이 표현된다.


Step 9. 시뮬레이션을 하려면 Quartus 2 옵션 설정에서 EDA 툴을 설정해주어야 하는데

설치시에 ModelSim Altera Starter 버전을 설치했다면 아래 경로에서 찾으면 된다.


Step 10. 그래프(?)의 그리드 크기는 Edit - Grid Size에서 설정하는데

그리드는 보여주기 위한 시간 단위이다.


1us 정도가 한계인데 단위를 바꾸어서 해봐도 이걸 늘리는 법은 모르겠다.


Step 11. 시뮬레이션 시간은 End Time으로 설정되는데

최대 100us 까지 밖에 설정을 할 수 없도록 되어 있는 것으로 보인다.


Step 12. 아무튼 설정할거 했으면 Simulation 에서 Run 으로 시작하는건 누르면 되는데


상단 아이콘 바에도 있으니 편한대로 하면 된다.


Step 13. 시뮬레이션을 누르면 아래와 같이 vwf 파일 저장안되었다고 경고 뜨는데

괜히 다른 이름으로 바꾸면 실행안되니 그냥 기본값으로 저장을 해주는게 속 편하다


Step 14. 아무튼 저정하고 나면 아래와 같이 테스트벤치를 생성해서 알아서 돌리는데



Step 15. 한참을 먼가 하고 나면 아래와 같이 sim.vwf 확장자로 다른 창이 뜬다.

(근데 멀 잘못했나.. 영 안뜨네?)


아무튼.. 왜 안되는지는 좀 더 고민해봐야 겠네... ㅠㅠ

'embeded > FPGA - ALTERA' 카테고리의 다른 글

지름신 쫒아내기  (0) 2020.06.19
timequest time analyzer?  (0) 2018.06.28
modelsim 시뮬레이션과 initial  (0) 2018.06.27
modelsim 길이 측정하기  (0) 2018.06.27
de0-nano LVDS  (0) 2018.06.26
Posted by 구차니

클라우드 관련해서 유명한 녀석인데

대충 읽어 보니.. 결국에는 클라우드는 IDC/서버들의 자동화를 위한 녀석이었나?

일반 사용자에게는 정말 뜬구름 잡는 소리였을 뿐인건가? 라는 생각이 든다.


일단 컴포넌트는 아래와 같은데 Nova가 메인이고

전체 클라우드를 관리하며, 각각 자기가 담당하는 관할이 있어

이것을 유기적으로 묶어 관리하여 자동화 하는것이 openstack이다.


기본적으로 오픈스택 돌리려면 서버 댓수가 어마어마하게 필요한 듯.



[링크 : https://en.wikipedia.org/wiki/OpenStack]

[링크 : https://www.openstack.org/]


+

기존에 서버는 물리적으로 구성되었는데 PXE 등의 네트워크 부트 기술을 이용해 NAS를 로컬 하드로 사용하고

네트워크 가상화를 통해 독립 호스팅 하는 식의 네트워크 안정성을 꾀한다.

그 과정에서 수 많은 작업이 필요한데 이걸 자동화 하여 사람의 개입 없이 혹은 최소화 해주는것이

클라우드 관리에 주요한 업무가 되고 이를 지원하는게 오픈스택이나 클라우드 서비스로 보인다.


+

IDC 가동율을 고려하면 pc도 hot spare 개념으로 남겨두고 레디하고 있다가

필요하면 바로 붙여서 교체하는 식으로 가동율을 올리는게 목표일려나?

어짜피 물리적으로 컴퓨터가 나가거나, 논리적으로 오류가 나도 

VM에 의해서 여러개의 인스턴스들이 작동하고 있거나 대기하고 있다면

해당 VM에 원격 스토리지를 붙이고 새롭게 네트워크를 구성함으로서

물리적 배선이나 교체없이(즉, 관리자의 수동 개입없이) IDC가 사용자 요구에 맞춰

작동하게 되는거니.. 과거 보았던 autonomous computing의 IDC 버전이라고 봐도 무방해 보인다.

'이론 관련 > 네트워크 관련' 카테고리의 다른 글

proxy forward / reverse 차이  (0) 2019.02.08
TLS 암호화 (구, SSL)  (0) 2019.02.07
SDN - Software Defined Networking  (0) 2018.06.27
rs-422 / rs-485  (0) 2018.05.23
uart 2bit stop bit  (0) 2018.05.02
Posted by 구차니

'이론 관련 > 네트워크 관련' 카테고리의 다른 글

TLS 암호화 (구, SSL)  (0) 2019.02.07
오픈스택 openstack  (0) 2018.06.27
rs-422 / rs-485  (0) 2018.05.23
uart 2bit stop bit  (0) 2018.05.02
rs232 / ttl 전기적 특성(?)  (0) 2016.09.22
Posted by 구차니
embeded/FPGA - ALTERA2018. 6. 27. 13:47

당연히(?) initial은 있어야 하는데

모듈내에서 사용하는 reg 변수들에 대해서도 처리가 되어 있지 않으면

값이 X가 나오면서 garbage 값이라 처리를 못하는 것으로 보인다.


예전에 구한 소스인데, 시뮬레이션 안되던거 혹시나 해서

모듈내에 사용되는 reg 변수를 0으로 초기화 해주니 시뮬레이션이 잘 진행된다.

module vga640x480(

input clk,

input rst,

output [7:0] LED,

output reg hsync,

output reg vsync,

output [3:0] r,

output [3:0] g,

output [3:0] b

);


reg clk25;

reg [9:0] horizontal_counter;

reg [9:0] vertical_counter;


reg [9:0] X;

reg [9:0] Y;


wire [7:0] red;

wire [7:0] green;

wire [7:0] blue;


initial

begin

horizontal_counter = 0;

vertical_counter = 0;

end


assign r[3:0] = ((horizontal_counter >= 144) 

&& (horizontal_counter < 784) 

&& (vertical_counter >=39)

&& (vertical_counter < 519)) ? red : 4'b000; 

assign g[3:0] = ((horizontal_counter >= 144) 

&& (horizontal_counter < 784) 

&& (vertical_counter >=39)

&& (vertical_counter < 519)) ? green : 4'b000; 

assign b[3:0] = ((horizontal_counter >= 144) 

&& (horizontal_counter < 784) 

&& (vertical_counter >=39)

&& (vertical_counter < 519)) ? blue : 4'b000; 


assign red =   ((horizontal_counter >= 144)&&(horizontal_counter < 344) ) ? 4'b1111 : 4'b0000;

assign green = ((horizontal_counter >= 344)&&(horizontal_counter < 544) ) ? 4'b1111 : 4'b0000;

assign blue =  ((horizontal_counter >= 544)&&(horizontal_counter < 784) ) ? 4'b1111 : 4'b0000;


always @(posedge clk)

begin


if (clk25 == 0)

begin

   clk25 <= 1;

end   

else

begin

clk25 <= 0;

   end

end



always @(posedge clk25)

begin

if ((horizontal_counter > 0) && (horizontal_counter < 97))// -- 96+1

begin

hsync <= 0;

end

else

begin

hsync <= 1;

end 

if ((vertical_counter > 0 ) && (vertical_counter < 3 )) //-- 2+1

begin

vsync <= 0;

end

else

begin

vsync <= 1;

end

horizontal_counter <= horizontal_counter+1;

    

if (horizontal_counter == 800) 

begin

vertical_counter <= vertical_counter+1;

horizontal_counter <= 0;

end

    

if (vertical_counter == 521)

begin

vertical_counter <= 0;

end

end



endmodule  


'embeded > FPGA - ALTERA' 카테고리의 다른 글

timequest time analyzer?  (0) 2018.06.28
altera quartus2 simulation 도움말  (0) 2018.06.28
modelsim 길이 측정하기  (0) 2018.06.27
de0-nano LVDS  (0) 2018.06.26
dual purpose pins  (0) 2018.06.20
Posted by 구차니
embeded/FPGA - ALTERA2018. 6. 27. 11:01

modelsim에서 파형을 어떻게 계측하나 해서 찾아 보니..

3.4.4 Measuring time

In wave viewer, select from top menus Add -> Cursor. Now you'll see 2 vertical lines (cursors). You can easily drag them and see the time interval between on the bottom. This is very handy when have to measure the execution time (or signal frequency). Just divide the time with the duration of a clock period to derive the number of clock cycles. 

[링크 : http://www.tkt.cs.tut.fi/tools/public/tutorials/mentor/modelsim/getting_started/gsms.html]


음.. 메뉴를 보니 A가 단축키네..


너무 멀지 않은 edge에 커서를 클릭하면 대충 달라 붙는데 A 누르면 저렇게 하나씩 생겨나고

아래에 cursor 가 생겨나는데 적절히 이용하면 될 듯?


'embeded > FPGA - ALTERA' 카테고리의 다른 글

altera quartus2 simulation 도움말  (0) 2018.06.28
modelsim 시뮬레이션과 initial  (0) 2018.06.27
de0-nano LVDS  (0) 2018.06.26
dual purpose pins  (0) 2018.06.20
modelsim define clock  (0) 2018.06.19
Posted by 구차니

여전히 화면은 안나오지만 일단 modelsim에서 패턴은 대충 확인했으니

이제 맞춰나가면 될 듯..

module vga640x480(

input clk,

input rst,

output [7:0] LED,

output hsync,

output vsync,

output [3:0] r,

output [3:0] g,

output [3:0] b

);


parameter HSYNC = 190;

parameter HBP = (190 + 96);

parameter HVID = (190 + 96 + 1271);

parameter HFP = (190 + 96 + 1271 + 32);

parameter HTOTAL = 1589;


parameter VSYNC = 3200;

parameter VBP = (3200 + 52400);

parameter VVID = (3200 + 52400 + 762650);

parameter VFP = (3200 + 52400 + 762650 + 15900);

parameter VTOTAL = 834150;


reg [19:0] cnt;


always @ (posedge clk or negedge rst)

begin

if (~rst)

cnt <= 0;

else

begin

if(cnt < VTOTAL) cnt <= cnt + 1;

else cnt <= 0;

end

end


assign LED[0] = ~vsync;

assign LED[1] = ~hsync;

assign r[3:0] = (((VBP < cnt) && (cnt < VVID)) && ((HBP < (cnt % HTOTAL)) && ((cnt % HTOTAL) < HVID))) ? 4'b1111 : 4'b0000;

assign g[3:0] = (((VBP < cnt) && (cnt < VVID)) && ((HBP < (cnt % HTOTAL)) && ((cnt % HTOTAL) < HVID))) ? 4'b1111 : 4'b0000;

assign b[3:0] = (((VBP < cnt) && (cnt < VVID)) && ((HBP < (cnt % HTOTAL)) && ((cnt % HTOTAL) < HVID))) ? 4'b1111 : 4'b0000;

assign hsync = ((cnt % HTOTAL) < HSYNC)? 0 : 1;

assign vsync = ((cnt         ) < VSYNC)? 0 : 1;


endmodule 


다시 보니.. 비디오 출력 하는 부분에서 &&대신 & 쓰지 않나

조건식 비교 범위를 반대로 하지 않나(그러니 계속 0이지) 완전 난리 부르스. ㄷㄷ


타이밍이 잘못되었나.. 왜 안나올까...


Posted by 구차니
개소리 왈왈/독서2018. 6. 27. 10:02

어느 녀석이 온지 모르겠지만

드디어 82년 김지영 책 도착!!!


3달만에 왔네 ㄷㄷ



'개소리 왈왈 > 독서' 카테고리의 다른 글

책 - 내가 SNS 올린 글도 역사가 된다고?  (0) 2018.07.01
책 - 82년 김지영  (2) 2018.06.28
책 - (자신감을 키워주는) 질문의 힘  (0) 2018.06.26
책 - 폰트의 맛  (0) 2018.06.21
책 - 늙지 않는 비밀  (4) 2018.06.15
Posted by 구차니
개소리 왈왈/독서2018. 6. 26. 22:48

머 결국에는 양육자가 아이와 대화를 많이 해야 하는데

가짜 대화 말고 진짜 대화를 하라는 내용.


이거 읽으며 퇴근해놓고 애한테 버럭 성질낸 건 함정 -_ㅠ


[링크 : https://www.kyobobook.co.kr/product/detailReviewKor.laf?barcode=9788998482206]

'개소리 왈왈 > 독서' 카테고리의 다른 글

책 - 82년 김지영  (2) 2018.06.28
읽기 예고(?)  (0) 2018.06.27
책 - 폰트의 맛  (0) 2018.06.21
책 - 늙지 않는 비밀  (4) 2018.06.15
책 - 내 인생의 첫 책쓰기 (김우태)  (0) 2018.06.01
Posted by 구차니