FPGA의 적응성 및 조건 컴파일
먼저 이런 문제를 생각해 보자. 백조망구와 천조망구의 시차는 틀림없이 다르다. 그러면 망구는 하나뿐이고 프로그램은 하나뿐이다. 어떻게 같은 프로그램에서 두 인터페이스의 자체 적응을 만족시킬 수 있겠는가?FPGA에서 Adaptive Format를 구현하는 방법은 다음과 같습니다.적응을 실현하려면 메인 프로그램에 미리 컴파일된 코드를 추가한 다음에 밖에서 미리 컴파일된 문서를 만들고 프로그램이 메인 프로그램의 미리 컴파일된 코드로 실행될 때 사용 여부를 판단하여 적응 기능을 실현한다.
// ,
`ifdef...`endif
`ifdef...`elsif...`elsif...`endif
조건 컴파일러 형식
//
`include "docname.v" //
module test_gg(
input clk,
input rst_n,
input key, //
//
`ifdef USE_KEY_Board //
input [3:0] Row_i,//
output [3:0] Col_o,//
`endif
`ifdef USE_IR //
input iIR, // iIR
`endif
output dout //
);
......//
//
`ifdef USE_KEY_Board
wire key_flag;
wire [3:0]key_value;
`elsif USE_IR
wire ir_Get_Flag;
assign ir_success = ~ir_Get_Flag;
`endif
`ifdef USE_KEY_Board
assign key_value = 4'd1101;
`endif
`ifdef USE_IR
assign iraddr = 1;
`endif
//
sys_crtl sys_crtl(
.clk(clk),
.rst_n(rst_n),
`ifdef USE_KEY_Board
.key_flag(key_flag),
.key_value(key_value),
`endif
`ifdef USE_IR
.ir_Get_Flag(ir_Get_Flag),
`endif
.freq_sel(freq_sel)
);
`ifdef USE_KEY_Board
key_board key_board(
.....
);
`endif
//
always @(*)
if(en=` Key_word0)
...
else if(en=` Key_word1)
....
// , 。Key_word1 , , 。 Key_word , `Key_word 。
패라메트릭 디지털 설계(예비 컴파일된 파일)
//docname
`define USE_KEY_Board 1 // ,
//`define USE_KEY_Detect 1
//`define USE_IR 1
`define user_ir_addr 16'hff00
//
`ifdef USE_KEY_Board
`define Key_word0 4'd0
`define Key_word1 4'd1
`define Key_word2 4'd2
`define Key_word3 4'd3
`define Key_word4 4'd4
`define Key_word5 4'd5
`define Key_word6 4'd6
`define Key_word7 4'd7
`elsif USE_IR
`define Key_word0 8'h5
`define Key_word1 8'h4
`define Key_word2 8'h3
`define Key_word3 8'h2
`define Key_word4 8'h1
`define Key_word5 8'h0
`define Key_word6 8'ha
`define Key_word7 8'hc0
`endif
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Xillybus and ROS on Ubuntu14.04 on Zybo Part 1 : 하드웨어 빌드 ~ BOOT.bin 생성에서 zybo 기본 디자인 (직접 링크)를 다운로드하여 작업 공간에 저장합니다. C:\work_space\xillinux-eval-zybo-1.3c.zip 전개하면 다음과 같은 디렉토리 구조로 되어 있습니다. Viv...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.