トップ 一覧 検索 ヘルプ RSS ログイン

cpu_top.vの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!TINYCPUのトップ回路

!!入出力ポート
,,ポート名,ビット数,FPGAボード上の接続デバイス, 
,入力,CLK50MHZ,1,50MHzのクロック,
,入力,BTN_NORTH,1,上側のスライドスイッチ,
,入力,BTN_EAST,1,右側のスライドスイッチ,
,入力,BTN_WEST,1,左側のスライドスイッチ,
,入力,BTN_SOUTH,1,下側のスライドスイッチ,
,入力,SW,4,4つのスライドスイッチ,
,入力,ROT_A,1,ロータリプッシュスイッチの軸エンコーダ,
,入力,ROT_CENTER,1,ロータリプッシュスイッチのプッシュスイッチ,
,入力,BTN_NORTH,1,上側のスライドスイッチ,tinycpuのinに接続
,入力,BTN_EAST,1,右側のスライドスイッチ,tinycpuのinに接続
,入力,BTN_WEST,1,左側のスライドスイッチ,tinycpuのinに接続
,入力,BTN_SOUTH,1,下側のスライドスイッチ,tinycpuのresetに接続
,入力,SW,4,4つのスライドスイッチ,tinycpuのinに接続
,入力,ROT_A,1,ロータリプッシュスイッチの軸エンコーダ,tinycpuのclkに接続
,入力,ROT_CENTER,1,ロータリプッシュスイッチのプッシュスイッチ,tinycpuのrunに接続
,出力,LED,5,5個のLEDに接続,
,出力,LCD_E,1,LED制御用,
,出力,LCD_RS,1,LED制御用,
,出力,LCD_RW,1,LED制御用,
,出力,SF_D,4,LED制御用

!!ソースコード
 module cpu_top(CLK50MHZ, ROT_A, ROT_CENTER, BTN_SOUTH, BTN_EAST, BTN_NORTH,
                BTN_WEST, SW, LED, LCD_E, LCD_RS, LCD_RW, SF_D);
 
  input CLK50MHZ, ROT_A, ROT_CENTER, BTN_SOUTH, BTN_EAST, BTN_NORTH, BTN_WEST;
  input [3:0] SW;
  output [4:0] LED;
  output LCD_RS, LCD_E, LCD_RW;
  output [11:8] SF_D;
  wire clk, reset;
  wire [2:0] cs;
  wire [6:0] in;
  wire [15:0] data0, data1, data2, data3, data4, data5;
 
  chattering #(8) chattering0(.clk(CLK50MHZ), .reset(reset),
        .in({BTN_WEST, BTN_NORTH, BTN_EAST, SW, ~ROT_A}), .out({in,clk}));
  lcdctrl lcdctrl0(.clk(CLK50MHZ), .reset(reset), .lcd_e(LCD_E),
            .lcd_rs(LCD_RS), .lcd_rw(LCD_RW), .sf_d(SF_D), .data0(data0),
            .data1(data1), .data2(data2), .data3(data3), .data4(data4),
            .data5(data5));
  tinycpu tinycpu0(.clk(clk), .reset(reset), .run(ROT_CENTER),
            .in({9'h000,in}), .cs(cs), .pcout(data0), .irout(data1),
            .qtop(data2), .abus(data3), .dbus(data4), .out(data5));
 
  assign reset = ~BTN_SOUTH; 
  assign LED[4] = (cs==`IDLE);
  assign LED[3] = (cs==`FETCHA);
  assign LED[2] = (cs==`FETCHB);
  assign LED[1] = (cs==`EXECA);
  assign LED[0] = (cs==`EXECB);
 
 endmodule

!注
クロックがうまく入力されないとき,「~ROT_A」を「ROT_A」に変更してください.