LoginSignup
3
1

More than 3 years have passed since last update.

CYC1000でLチカ(+音源定位)

Last updated at Posted at 2020-03-21

2020/12/20追記: CYC1000を使って音源定位→動画はこちら

  • 音の鳴っている場所を色で表示
  • 複数の音が鳴っている環境でも、それぞれの音源を色で表示できる(下図は左右2箇所)

スライド5.PNG

本題: はじめに

  • FPGA開発ボードCYC1000について
  • 25kLEのIntel Cyclone10搭載
  • 今回はLチカを例に、基本的な使い方をメモしていきます

IMG5328.jpeg

1. 開発環境

2. ピン配置

  • ピン配置の一覧表を作りました
  • 詳細はこちらを参照

a.png

Pin Header Pin No. Node Name Bank Location
J1 1 GPIO0
AREF1
4 P11
J1 2 GPIO1
AIN0
4 R12
J1 3 GPIO2
AIN1
4 T13
J1 4 GPIO3
AIN2
4 R13
J1 5 GPIO4
AIN3
4 T14
J1 6 GPIO5
AIN4
4 P14
J1 7 GPIO6
AIN5
4 R14
J1 8 GPIO7
AIN6
4 T15
J1 9 GPIO8
D0
5 N16
J1 10 GPIO9
D1
5 L15
J1 11 GPIO10
D2
5 L16
J1 12 GPIO11
D3
5 K15
J1 13 GPIO12
D4
5 K16
J1 14 GPIO13
D5
5 J14
J2 1 GPIO14
D6
2 N2
J2 2 GPIO15
D7
2 N1
J2 3 GPIO16
D8
2 P2
J2 4 GPIO17
D9
2 J1
J2 5 GPIO18
D10
2 J2
J2 6 GPIO19
D11
2 K2
J2 7 GPIO20
D12
2 L2
J2 8 GPIO21
D13
2 P1
J2 9 GPIO22
D14
2 R1
J2 10 Reset - -
J2 11 GND - -
J2 12 3.3V - -
J2 13 VIN
(5V supply)
- -
J2 14 5V - -
J3 1 GPIO23
AIN
4 T12
J3 2 GND - -
J3 3 GPIO24
AIN7
4 R11
J4 1 GND - -
J4 2 n.c. - -
J4 3 TCK 1 H3
J4 4 TDO 1 J4
J4 5 TDI 1 H4
J4 6 TMS 1 J5
J6 1 PIO_01 6 F13
J6 2 PIO_02 6 F15
J6 3 PIO_03 6 F16
J6 4 PIO_04 6 D16
J6 5 GND - -
J6 6 3.3V - -
J6 7 PIO_05 6 D15
J6 8 PIO_06 6 C15
J6 9 PIO_07 6 B16
J6 10 PIO_08 6 C16
J6 11 GND - -
J6 12 3.3V - -
- - LED1 3 M6
- - LED2 3 T4
- - LED3 3 T3
- - LED4 3 R3
- - LED5 3 T2
- - LED6 3 R4
- - LED7 3 N5
- - LED8 3 N3
- - USER_BTN
(pull-up)
3 N6
- - CLK
(12MHz)
2 M2
  • 2020/03/22:J6ピン配置の誤記修正
  • 2020/08/02:分かりやすい図を見つけました
  • 2020/08/14:Pin No.順に並び替え、Bankを追記
  • 2020/09/15:分かりやすい図を見つけました

3. サンプルコード

  • LED1を1秒毎に点滅させる
main.vhd

library IEEE;
  use IEEE.std_logic_1164.all;
  use IEEE.std_logic_arith.all;
  use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity main is
   Port ( 
    RST_N   : IN std_logic;  
    CLK : IN std_logic;  
    LED1    : OUT std_logic );
end main ;

architecture RTL of main is

signal counter : std_logic_vector(25 downto 0);
signal counter_clr, counter_dec : std_logic;

begin

process( RST_N, CLK )  
begin 
    if( RST_N = '0' ) then
        counter <= (others => '0');
    elsif( CLK'event and CLK = '1' ) then
        if(counter_clr = '1') then
            counter <= (others => '0');
        else 
            counter <= counter + 1;
        end if;
    end if;  
end process;

  counter_clr <= '1' when counter = 11999999 else '0';
  counter_dec <= '1' when counter < 6000000 else '0';
  LED1 <= not counter_dec;

end RTL;

4. プロジェクト作成→コンパイル

  1. FileNew Project Wizard → プロジェクト名とフォルダを入力
  2. Family, Device & Board SettingsFamilyCyclone 10 LP , Name10CL025YU256C8G に設定
  3. NextFinish を押す
  4. AssignmentSettingsGeneralTop-level entity にentity名を入力
  5. AssignmentPin Planner でピン配置を設定
  6. ProcessingStart Compilation でコンパイル

pinplanner.png

5. メモリ書込み

  1. ToolProgrammer を開く
  2. Hardware SetupCurrently selected hardwareArrow-USB-Blaster に設定して Close を押す
  3. Change Files を押して output_files 内のsofファイルを選択
  4. Program/Configure にチェックを入れる
  5. Start を押すと書込み

6. 不揮発性メモリに書込み(参考)

  1. メイン画面で FileConvert Programming Files...Output programming file を開く
  2. Programming file typeJTAG Indirect Configuration File (.jic) に設定
  3. Input files to convertFlash LoaderAdd Device を開く
  4. Device familyCyclone 10 LP に設定
  5. Device name10CL025Y に設定
  6. Input files to convertSOF DataAdd File... を開き、sofファイルを選択
  7. 最後に Generate を押すと、jicファイルが生成される
  8. Programmer画面で Change File を押して、jicファイルを選択
  9. EPCS16 を選択し、ProgramVerify にチェックを入れる
  10. Start を押すと書込み

参考資料


  1. AREFはLPFに接続されているので、GPIOとして使う場合は注意 

3
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1