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 구차니

"성범죄자 오해 살라"..지하철 펜스룰 지키는 남성들

[링크 : http://v.media.daum.net/v/20180626110936846]


'소비자 운동'에 숨은 여성혐오..'메갈 사냥꾼'은 누구?

[링크 : http://v.media.daum.net/v/20180626112608601]


'82년생 김지영' 가르치려던 교사에 악플.. 도 넘은 혐오사회

[링크 : http://v.media.daum.net/v/20180626222107736]


+

계단을 걸어 올라가는데 한 10개 정도 남은 상태에서, 마주보고 내려오려는 치마입은 아가씨가 똭하고 나타났다면

내 자유의사나 의도와는 전혀 상관없이 피해자(라고 주장하는 여성)의 해석에 의해서 난 졸지에 성범죄자가 된다.

내가 타인의 해석까지 감당을 해야 하는건가? 아니 남자는 여자의 감정이나 해석까지 책임을 져야 하는 건가?

만약 앞/위를 못보고 계단을 가다가 넘어지면 그 치마 입은 여자들이 보상을 해주는 건가?


지하철이나 버스가 흔들흔들해서 상대가 확실히 밀려났음에도 불구하고

여자라는 이유로 성추행 당했다고 오인하는 경우도 있기도 한데, 자신의 감각을 판단을 100% 신뢰할 수 있을까?

(솔찍히 자기 영역 침범되서 기분 좋을 사람이 있을리가 없는데, 남자라고해서 침범되도 좋을리는 없다)


아무튼 많은 부분이 성추행의 주관적인 해석과 증언이라는 모호함을 법에 포함시킨게 문제인데

해당 범죄의 특성상 그걸 완전히 배제할 수도 없는 노릇이라는 상황에서 이러한 문제가 발생한다.


문득, 예전 운동권이나 데모하던 것을 보면서 느끼던 여'성'의 무기화가 전반화 된게 바로

이런 페미니즘 운동이 아닐까 라는 생각마저 든다.



+

문득드는 개소리 같은 생각

카테고리를 걍 메갈리즈음으로 바꿀까?


솔찍히 남자라서 죄송해야 하는, 남자인것이 죄인 시대가 왔다.

여자라서 죽었던 시대가 있었으니 이제 남자가 당해야 한다고 주장을 할까 싶기도 하지만

남자/여자로 나누어서 피해를 서로 감수하고 더 나은 선택지로 가는 최선의 선택이 있음에도 불구하고

서로 한방에 죽일 폭탄 돌리기 하는 식으로 파국으로 치닫는 느낌이다.


왜 그런 남자들을 남자들이 처벌하지 않는데? 라는 점에 대해서

여자들은 같은 남자니까 서로 감싸준다. 남자가 권력이다 라는 해석을 내놓고 있지만

실제로는 엄밀히 제 3자로서 개입을 할 수 없기 때문이다가 정답이 아닐까 생각된다.

제 3자로서 개입할 수도 없고, 적지 않은 사례에서 정의감에 여자를 도와주려다가 여자 도망가고

증거를 입증할 수 없어 개입한 사람이 다 뒤집어 쓰는 경우도 많으니

개인으로서 할 수 있는 선택지는 적당히 무시하기 밖에 없다고 생각이 된다.


어떤 의미로, 공권력이라는 이름으로 자기를 막는 힘을 강제로 위임당하고 빼앗겼기 때문에 생겨난 일일 수도 있지만,

사회와 계약을 하고 그 댓가로 안전을 얻는 것을 택한 이후로 어쩔수 없는 사이드이펙트라고 할 수 밖에 없다.


그리고 법이라는게 누구의 편을 들어줘서는 안되는

모두에게 공평한 것이기에 가지는 한계이기도 하고 말이다.



+

의외로 페미니즘에 대한 공격(?) 방법으로 유효해 보이는게 역설적이게도 '메갈 낙인'으로 보인다.

항상 그네들은 죽은 사이트라는 둥, 우리는 메갈 워마드 상관없다 라고 하지만

유난히 격렬한 반응을 보이는게 바로 메갈 낙인이다.

Posted by 구차니
embeded/FPGA - ALTERA2018. 6. 26. 09:50

DE0-nano의 메인칩은 EP4CE22F17C6N 인데

아래분류를 따르면 FBGA 256pin이다.

[링크 : https://www.altera.com/en_US/pdfs/literature/hb/cyclone-iv/cyiv-51006.pdf]


그리고 디퍼런셜 채널은 20개

[링크 : https://www.altera.com/en_US/pdfs/literature/hb/cyclone-iv/cyiv-51001.pdf]


MCU들 처럼 핀의 alternative function 설정해주면 끝나는게 아니라..

ALTERA Megafunction을 통해 구현을 해주어야 하는건가?

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

[링크 : http://blog.daum.net/trts1004/12109410]

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

modelsim 시뮬레이션과 initial  (0) 2018.06.27
modelsim 길이 측정하기  (0) 2018.06.27
dual purpose pins  (0) 2018.06.20
modelsim define clock  (0) 2018.06.19
modelsim과 timescale 그리고 50Mhz  (0) 2018.06.18
Posted by 구차니