連載
FPGAの内蔵温度センサーから値を得る:MAX 10 FPGAで学ぶFPGA開発入門(13)(4/6 ページ)
アルテラのFPGA「MAX 10」には温度センサーが内蔵されており、自身の温度を測定可能だ。メガファンクション「ALTPLL」を使い、内蔵センサーからの値を得るまでを試みる。
「TEMP_LED2.v」の編集
やっとTEMP_LED2.vの編集である。List 1が編集前、List 2が編集後となる。まずaltpll_pllを呼び出し、input Clockには50MHzのMAX10_CLK1_50を指定、出力には別にadc_clkというwireを割り当てた。これを含めてTEMP_LED2_QSYSをu2として呼び出している。それぞれのmodule宣言は、altpll_pll.vhdとTEMP_LED2_QSYS.vの先頭でそれぞれ定義されているので、これを参考に割り当てれば良い。ここまで終了したらコンパイルし、エラーがなければそのままProgrammerでMAX 10 NEEKに書き込んでQuartus II側の作業は完了である。
//======================================================= // This code is generated by Terasic System Builder //======================================================= module TEMP_LED2( //////////// CLOCK ////////// input ADC_CLK_10, input MAX10_CLK1_50, input MAX10_CLK2_50, input MAX10_CLK3_50, //////////// KEY ////////// input FPGA_RESET_n, input [4:0] KEY, //////////// LEDR ////////// output [9:0] LEDR, //////////// HEX ////////// output [6:0] HEX0, output [6:0] HEX1, //////////// PS2 ////////// inout PS2_CLK, inout PS2_CLK2, inout PS2_DAT, inout PS2_DAT2, //////////// Humidity and Temperature Sensor ////////// input RH_TEMP_DRDY_n, output RH_TEMP_I2C_SCL, inout RH_TEMP_I2C_SDA ); //======================================================= // REG/WIRE declarations //======================================================= //======================================================= // Structural coding //======================================================= endmodule
List1
//=======================================================
// This code is generated by Terasic System Builder
//=======================================================
module TEMP_LED2(
//////////// CLOCK //////////
input ADC_CLK_10,
input MAX10_CLK1_50,
input MAX10_CLK2_50,
input MAX10_CLK3_50,
//////////// KEY //////////
input FPGA_RESET_n,
input [4:0] KEY,
//////////// LEDR //////////
output [9:0] LEDR,
//////////// HEX //////////
output [6:0] HEX0,
output [6:0] HEX1,
//////////// PS2 //////////
inout PS2_CLK,
inout PS2_CLK2,
inout PS2_DAT,
inout PS2_DAT2,
//////////// Humidity and Temperature Sensor //////////
input RH_TEMP_DRDY_n,
output RH_TEMP_I2C_SCL,
inout RH_TEMP_I2C_SDA
);
//=======================================================
// REG/WIRE declarations
//=======================================================
wire adc_clk;
//=======================================================
// Structural coding
//=======================================================
altpll_pll u0 (
.inclk0 (MAX10_CLK1_50),
.c0 (adc_clk),
.locked (adc_pll_locked_ext)
);
TEMP_LED2_QSYS u1 (
.adc_pll_clock_ext_clk (adc_clk),
.adc_pll_locked_ext_export (adc_pll_locked_ext),
.clk_clk (MAX10_CLK1_50),
.hex0_pio_export (HEX0),
.hex1_pio_export (HEX1),
.key_pio_export (KEY),
.ledr_pio_export (LEDR),
.reset_reset_n (1'b1),
.rh_temp_drdy_n_pio_export (RH_TEMP_DRDY_n),
.rh_temp_i2c_scl_pio_export (RH_TEMP_I2C_SCL),
.rh_temp_i2c_sda_pio_export (RH_TEMP_I2C_SDA)
);
endmodule
List2
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
オンボードされた温湿度センサーからFPGAで値を得る
FPGA「MAX 10」搭載開発ボード「MAX 10 NEEK」には各周辺機器が備えられており、そこにはTI製の温湿度センサーも含まれる。サンプルプログラムを元に、オンボードされたデバイスの制御を試みる。
「MAX 10 NEEK」でストップウォッチを開発し、内蔵メモリから起動する
アルテラのFPGA「MAX 10」を搭載した開発ボード「MAX 10 NEEK」にはLEDやフラッシュメモリなどの各周辺機器が備えられている。今回はLEDを使ったストップウォッチを開発し、内蔵メモリから起動する。
「MAX 10 NEEK」に搭載されたDDR3メモリを使う
MAX10搭載開発ボード「MAX 10 NEEK」には各周辺機器が備えられており、その中にはDDR3メモリも含まれる。ソフトコアCPU「Nios II」からの利用も含めて手順を紹介する。
「MAX 10 NEEK」へソフトコアCPUを組み込む
周辺機器の充実したMAX10搭載開発ボード「MAX 10 NEEK」に、ソフトコアCPU「NIOS II」を組み込み、ソフトコアCPUからボード搭載LEDの制御までを紹介する。
周辺機器の充実した「MAX 10 NEEK」で本格的な開発を目指す
FPGA開発において周辺機器(回路)は見落とせない要素の1つ。タッチパネルや各種出入力などを備えた「MAX 10 NEEK」を導入して、本格的な開発を目指す。