embeded/FPGA - ALTERA2018. 6. 4. 16:32

일단 하나 검색했으니 집에가서 따라해봐야지


RTL Level Simulation with ModelSim

- Synthesis 이후에 시뮬레이션 가능

Gate Level Simulation

- 전체 컴파일 이후에 시뮬레이션 가능

[링크 : http://idlelogiclabs.com/2011/12/04/using-modelsim-with-quartus-ii-and-the-de0-nano/]


게이트-레벨시뮬레이션은타이밍시뮬레이션에서 기능적결과의차이만을확인한다. 만약게이트-레벨시뮬레 이션은문제없고타이밍시뮬레이션이실패했다면, 넷리스트 가아닌타이밍으로발생된부분임을나타낸다. 백-어노테이트 타이밍 시뮬레이션은 타이밍 정보가 있는 게이트-레벨 시뮬레이션이다. 이를 위해 FPGA 벤더는 VITAL (VHDL Gate Level) 넷리스트 또는 Verilog 넷리스 트를 생성한다 

[링크 : http://www.itfind.or.kr/COMIN/file24639-FPGA%20디버깅%20방법.pdf]

Posted by 구차니
embeded/FPGA - ALTERA2018. 6. 3. 23:07

output 대신에

output reg를 쓰니 해결..

c언어 때 처럼 무슨 문제인지 감이 영안오네...


[링크 : https://electronics.stackexchange.com/...left-hand-side-of-assignment-must-have-a-variable-data-type]

Posted by 구차니

하다 보면 언젠간 언어도 익히고 작동도 하겠지머..

일단 sync만 인식을 하는지 절전모드였던 모니터가 살아나기는 하는데 해상도 정보까진 못 띄우네

DE0-nano에 시도중

vga640x480 vga(

CLOCK_50,

KEY[0],

LED,

GP0[6],

GP0[5],

{GP0[16],GP0[19],GP0[18],GP0[21]},

{GP0[12],GP0[15],GP0[14],GP0[17]},

{GP0[8],GP0[9],GP0[10],GP0[13]}

); 


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

);


parameter HSYNC = 189;

parameter HBP = (HSYNC + 95);

parameter HVID = (HBP + 1260);

parameter HFP = (HVID + 47);


parameter VSYNC = 3000;

parameter VBP = (VSYNC + 51000);

parameter VVID = (VBP + 762500);

parameter VFP = (VVID + 17500);


reg [19:0] cnt;


always @ (posedge clk or negedge rst)

begin

if (~rst)

cnt <= 0;

else

begin

if(cnt < 834000)

begin

cnt <= cnt + 1;

if((cnt % 1590) < HSYNC)

hsync <= 1;

else hsync <= 0;

if(cnt < VSYNC)

vsync <= 1;

else vsync <= 0;

end

else

cnt <= 0;

end

end


assign LED[0] = vsync;

assign LED[1] = hsync;


endmodule 


위의 수치는 아래의 계산에 의해서 나온 것 임.

vga_640x480.xlsx


+

parameter는 이전 값을 더해서 쓸수는 없는건가..

HFP를 이용해서 % 연산을 하면 정상적으로 작동하지 않는 것으로 보이네..



+

sync 구간에만 0이고 나머지는 1로 vsync/hsync 출력해야 하네?

[링크 : https://ws0.org/how-to-generate-a-vga-signal-with-a-fpga/]

[링크 : http://www.cs.ucr.edu/~jtarango/cs122a_lab4.html]

[링크 : https://www.nandland.com/goboard/vga-introduction-test-patterns.html]


+

단순하게 데이터만 출력한다고 나오는게 아닌가?

아무튼.. modelsim 쓰는법 배워서 출력 시그널 확인을 할 필요가 있을 듯...

module vga640x480(

input clk,

input rst,

output [7:0] LED,

output reg hsync,

output reg vsync,

output reg [3:0] r,

output reg [3:0] g,

output reg [3:0] b

);


parameter HSYNC = 189;

parameter HBP = (HSYNC + 95);

parameter HVID = (HBP + 1260);

parameter HFP = (HVID + 47);


parameter VSYNC = 3000;

parameter VBP = (VSYNC + 51000);

parameter VVID = (VBP + 762500);

parameter VFP = (VVID + 17500);


reg [19:0] cnt;


always @ (posedge clk or negedge rst)

begin

if (~rst)

begin

cnt <= 0;

hsync <= 1;

vsync <= 1;

end

else

begin

if(cnt < 834000)

begin

cnt <= cnt + 1;

if((cnt % 1590) < HSYNC)

hsync <= 0;

else hsync <= 1;

if(cnt < VSYNC)

vsync <= 0;

else vsync <= 1;

if(vsync & hsync)

begin

r <= 4'b1111;

g <= 4'b1111;

b <= 4'b1111;

end

else

begin

r <= 4'b0000;

g <= 4'b0000;

b <= 4'b0000;

end

end

else

cnt <= 0;

end

end


assign LED[0] = ~vsync;

assign LED[1] = ~hsync;


endmodule 


+

2018.06.04

하드웨어 구조는 모르겠지만 동일 셋트 예제 발견

[링크 : https://github.com/theapi/de0-nano/blob/master/vga/experiment/vga_demo.v]

Posted by 구차니

만사 귀찮네

접기에는 아깝고 

방문자 보고 시작한것도 아니긴 하지만

관리자 페이지에서 방문자 통계좀 없앴으면..


자꾸 너무 신경쓰이네..

Posted by 구차니
embeded/FPGA - ALTERA2018. 6. 2. 22:36

카운터 증가 하는데

클럭에 연계해서 작동시키는 부분에서

클럭 엣지 트리거 부분에 여러개 작성하니 에러 발생..


 always @ (posedge clk or negedge rst)

begin

if (~rst)

cnt <= 0;

else

begin

if(cnt < 834000)

cnt <= cnt + 1;

else

cnt <= 0;

end

if(cnt < HSYNC)

hsync <= 1;

else hsync <= 0;

if(cnt < VSYNC)

vsync <= 1;

else vsync <= 0;

end


아래는 해결 한 것

음.. 자세한 내용은 나중에 찾아봐야지.. 이해를 못하고 있음 ㅠㅠ

 always @ (posedge clk or negedge rst)

begin

if (~rst)

cnt <= 0;

else

begin

if(cnt < 834000)

begin

cnt <= cnt + 1;

if(cnt < HSYNC)

hsync <= 1;

else hsync <= 0;

if(cnt < VSYNC)

vsync <= 1;

else vsync <= 0;

end

else

cnt <= 0;

end

end


[링크 : https://www.edaboard.com/showthread.php?326768...-enclosing]

Posted by 구차니

피곤피곤..

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

체력 방전  (0) 2018.06.09
체력 오링..  (0) 2018.06.06
월차, 아내님 병원 그리고 드론  (8) 2018.05.28
주말이 머했는데 끝나냐...  (0) 2018.05.27
대충대충 한쪽벽면 보온벽지 시공  (0) 2018.05.26
Posted by 구차니
개소리 왈왈/독서2018. 6. 1. 22:08

책 쓰고 싶어지는 책

그리고 블로그 접고 위키에 본격적으로 집필을 해서

완전히 다 쓰고 나서 출판사 접촉을 해봐야 하나 생각이 드네


그나저나 쓴다면 멀 주제로 써야 할까...


[링크 : http://www.kyobobook.co.kr/product/detailViewKor.laf?barcode=9788998294366]


+

처음 글을 쓰려는 사람에게 이런이런 과정이 있으니

이런식으로 따라오면 출판이 용이할 것이다. 라는 내용과

출판사 측의 의견들도 포함되서 책을 출판해보고 싶으나 해본적은 없는 사람에게 상당히 도움이 되는 책이다.

다만 책을 너무 쓰라고 종용(?) 하는 느낌이 조금 부담이 가고

뒤로 갈수록 책을 쓰는 이유가 현실적이긴 하지만 너무 금전적인 부분에 강조하는 게 거부감이 드는 정도?


나쁘게 말하자면 저자가 책에서도 말했듯

이런 정도 밖에 안되는 책도 출판되니 도전은 해보자!

내돈내고 하는것도 아니고 출판사가 위험을 짊어지고 하는거니 질러나 봐라 정도?


+

근데 동일 제목으로 다른 저자의 책이 또 있네?

Posted by 구차니

귀찮으니 내일 사진찍어야지..

간만에 자전거 타니 다리가 후덜후덜

25km 좀 잠시 냈다고 돌아올때 쥐날뻔 ㅠㅠ


+


먼가 내용물이 많이 부실해졌네?

그리고 이전에 한번 사용했떤 흰색이라니..


Posted by 구차니

vga 관련 문서를 찾다 보니 구현했는데 안되요~ 라는 말이 있어서 스펙을 좀더 찾아 보는중.

아래는 front porch - sync - back porch - data 순서인데

중간에 문장을 보면.. data 에서만 HSync가 High로 나오고 나머지는 Low로 해주면 될 듯


ParameterValueUnit
Pixel clock frequency25.175MHz[10]
Horizontal frequency31.469kHz
Horizontal pixels640
Horizontal sync polarityNegative
Total time for each line31.778µs
Front porch (A)0.636µs
Sync pulse length (B)3.813µs
Back porch (C)1.907µs
Active video (D)25.422µs

(Total horizontal sync and blanking time = 6.356 µs; equivalent to pixel widths of A = 16, B = 96, C = 48, D = 640 and each complete line = 800)

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


기존의 아날로그 영상의 경우에는 sync - back porch - data - front porch 순서로 되어있다.

편의상 front - sync - back - data 순서로 하다보니 처음에 sync가 아닌 front가 와서 인식 못하는건 아닐까?

[링크 : https://en.wikipedia.org/wiki/Analog_television#Structure_of_a_video_signal]


+

[링크 : http://www.mcamafia.de/pdf/ibm_vgaxga_trm2.pdf] VGA 표준?


VSync는 가장 첫줄 할때만

[링크 : http://www.ccm.ece.vt.edu:8444/twiki/pub/Main/LectureNotes/23-VGA.pdf]

[링크 : http://www.eng.utah.edu/~cs3710/labs/VGA.pdf]


타이밍 정보

Sync만 보고, porch는 Data에 붙여 버렸네?

[링크 : http://www.epanorama.net/documents/pc/vga_timing.html]


"VGA industry standard" 640x480 pixel mode

Clock frequency 25.175 MHz

Line  frequency 31469 Hz

Field frequency 59.94 Hz


One line

  8 pixels front porch

96 pixels horizontal sync

 40 pixels back porch

  8 pixels left border

640 pixels video

  8 pixels right border

---

800 pixels total per line


One field

  2 lines front porch

  2 lines vertical sync

 25 lines back porch

  8 lines top border

480 lines video

  8 lines bottom border

---

525 lines total per field               


[링크 : https://courses.cs.washington.edu/courses/cse467/00wi/lectures/ppt/VGAinterface.ppt]



+


[링크 : https://timetoexplore.net/blog/arty-fpga-vga-verilog-01]

[링크 : https://github.com/pmezydlo/DE0-Nano-SOC-VGA]


50MHz = 0.02us

[링크 : https://www.unitjuggler.com/convert-frequency-from-MHz-to-%C2%B5s(p).html?val=50]

'이론 관련 > 컴퓨터 관련' 카테고리의 다른 글

VGA DMT 스펙  (0) 2018.06.11
vga 타이밍  (0) 2018.06.08
VGA(RGB) 파형 측정  (0) 2018.05.30
VGA Pattern Generator 관련 검색  (0) 2018.05.30
hdmi pinout  (0) 2018.05.29
Posted by 구차니