ATLAS-SoC에서 플레이 (L 치카 part2)

5078 단어 FPGAquartusModelSim

목적



지난번의 동작 확인시에 사용한 DE0_NANO_SOC_Default.v의 일부를 변경하여 LED 카운터를 작성한다.
평가 보드의 동작 클럭이 50MHz이므로 카운트 동작이 눈으로 쫓도록 분주하고, 그 신호를 그대로 LED에 사용한다.

구현



우선 8bit 카운터를 도입했을 때의 파형의 모습을 modelsim으로 확인한다.
테스트 벤치는 QuartusPrime의 "test bench template writer"를 기반으로 작성

템플릿 데이터는 다음 디렉토리에 생성됩니다.
./{작업 디렉토리}/simulation/modelsim/{verilog 파일 이름}.vt
이렇게하면 테스트 벤치를 만들 때 필요한 신호 이름 입력 작업을 줄일 수 있습니다.

DE0_NANO_SOC_Default.vt
---------省略----------------
`timescale 1 ps/ 1 ps
module DE0_NANO_SOC_Default_vlg_tst();
// constants                                           
// general purpose registers
reg eachvec;
// test vector input registers
reg ADC_SDO;
reg FPGA_CLK1_50;
reg FPGA_CLK2_50;
reg FPGA_CLK3_50;
reg [35:0] treg_GPIO_0;
reg [35:0] treg_GPIO_1;
reg [1:0] KEY;
reg [3:0] SW;
// wires                                               
wire ADC_CONVST;
wire ADC_SCK;
wire ADC_SDI;
wire [35:0]  GPIO_0;
wire [35:0]  GPIO_1;
wire [7:0]  LED;

// assign statements (if any)                          
assign GPIO_0 = treg_GPIO_0;
assign GPIO_1 = treg_GPIO_1;
DE0_NANO_SOC_Default i1 (
// port map - connection between master ports and signals/registers   
    .ADC_CONVST(ADC_CONVST),
    .ADC_SCK(ADC_SCK),
    .ADC_SDI(ADC_SDI),
    .ADC_SDO(ADC_SDO),
    .FPGA_CLK1_50(FPGA_CLK1_50),
    .FPGA_CLK2_50(FPGA_CLK2_50),
    .FPGA_CLK3_50(FPGA_CLK3_50),
    .GPIO_0(GPIO_0),
    .GPIO_1(GPIO_1),
    .KEY(KEY),
    .LED(LED),
    .SW(SW)
);
---------省略----------------

템플릿 데이터를 사용하여 클록 부분에 신호를 넣을 때의 테스트 파형이 여기

KEY는 DFF의 인 에이블 신호입니다. 예술은 없지만 신경 쓰지 않습니다

후에는 LED의 점멸이 눈으로 쫓도록 분주부를 8bit에서 32bit로 변경해 상위 비트분을 LED에 연결한다.

DE0_NANO_SOC_Default.v

---------省略----------------
reg  [31:0] Cont;

always@(posedge FPGA_CLK1_50 or negedge KEY[0])
begin
      if(!KEY[0])
           Cont <=  0;
      else
           Cont <=  Cont+1;
end

assign LED[7:0] = Cont[31:24];

endmodule

이상.

예상대로 LED의 카운트업 동작을 확인할 수 있었습니다.

참고서



입문 Verilog HDL 기술 - 하드웨어 기술 언어 속습 및 실천 (Design wave basic)
Verilog HDL & VHDL 테스트 벤치 기술 초보 (DESIGN WAVE MOOK)

좋은 웹페이지 즐겨찾기