2023년 10월 8일 일요일

Quartus verilog 설치 및 컴파일 등등 (DE0 Nano)(FPGA)


중고나라에서 DE Nano저렴하게 파는곳

https://cafe.naver.com/joonggonara/384541415




설치할때

Cyclone IV E

Cyclone IV GX

포함시킬것

(사용하는 칩 : EP4CE22F17C6N)




Ctrl + L : 컴파일 단축키




USB Blaster 인식안될때

https://community.intel.com/t5/Programmable-Devices/Windows-10-driver-support-for-USB-Blaster/td-p/55323?profile.language=ko

여기서 signed-usb-blaster.zip 파일을 다운로드 한 후

C드라이브 아래 Altera폴더 아래에 폴더른 만든후 

그안에 zip파일을 해제한다.

(★경로 중에 Space 없을것!!)

장치관리자에서 드라이브 업데이트 할때 zip해제한 경로로 설정하면

USB Blaster가 다시 인식이 된다.


================================================

https://www.intel.com/content/www/us/en/software-kit/785086/intel-quartus-prime-lite-edition-design-software-version-22-1-2-for-windows.html?

▲최신버젼 다운로드 경로

===================================================



설치할때 불필요한것들 최대한 체크해제할것


프로젝트 확장자는 pqf 

업로드할때 확장자 sof (output_files폴더안에 컴파일된 sof가 있다.)


파일들 가져올때 뜨는값들

Speed Grade

Freq


Quartus에서

File >> Open project >> qpf확장자 파일 열기






장치관리자에서 USB Blaster



드라이버 안잡힌 상태일때 ?로 표시됨



드라이버 찾을때

Version 22


10.1 SP1






output_file 폴더안에 DE0_NANO_CAR_RTL.sol 파일을 업로드하면 된다.


===================================================
스위치 키고
USB연결해서 업로드하고
USB선 해제하고
Key1버튼 누르면 바퀴 돌아감



PWM 15:0


{ rR3,rL3 ,rB ,rR2,rL2,rR,rL }<=7'h0;
문법 <=
(예시) X <= A XOR B; 


https://blog.naver.com/PostView.naver?blogId=dhkmail&logNo=130112779105
reg변수가 [?:?]로 폭이 정해진 경우와 폭이 정해지지 않은 경우가 있다.
reg폭이 정해지지 않은경우는 1bit로 True Fale만 정해진다.


stepping motor관련 pdf 자료 (▶LINK)


MOTOR_PWM_OUT.v 에서
output M0A 와 output M0B 가 motor driver와 연된되어있음
1:0 일땐 Forward
1:1 일때 Break
M0A, M0B가 왼쪽바퀴를 담당함


====================================================

Verilog와 Verilog-A의 차이

Unlike Verilog, which is a language intended to describe digital hardware, Verilog-A is intended to describe analog hardware.

Verilog 자체는 디지털을 위한 언어

Verilog-A 참고자료 (▶LINK) 16쪽 참고
module A(in, out);
input in;
output out;
.... 이런식으로 코드가 전개된다.


====================================================

프로젝트명과 코드내 module명을 일치시킬것 (안그럼 error발생)


module top_module (input IN, output OUT);
assign OUT = IN;
endmodule



>>와이어 사용법 (Gate간의 입출력을 의미함) (assign은 논리연산을 의미함)
module top_module (input IN, output OUT);
wire not_in;    //첫번째Gate, 두번째Gate 사의의 Wire를 의미함
assign OUT = ~not_in;    //OUT값은 not_in값의 반전 (두번째 Gate)
assign not_in = ~IN;        //not_in값은 IN값의 반전 (첫번째 Gate) 
endmodule

그림을 보면서 참고해야 코드가 보임



>>벡터


>>온도조절기 (84쪽)
module top_module
(
    input too_cold,
    input too_hot,
    input mode,
    input fan_on,
    output heater,
    output aircon,
    output fan
);
assign heater = mode && too_cold;
assign aircon = (~mode) && too_hot;
assign fan = aircon || heater || fan_on;
endmodule

=====================================================


https://www.ti.com/lit/ug/tidu737/tidu737.pdf


From the control panel,
users are able to view the eight channel 12-bit ADC reading.
The values shown are the ADC register outputs
                                                    from all of the eight separate channels.
The voltage shown is the voltage reading from the separate pins on the extension header.

댓글 없음:

댓글 쓰기