!!!TINYCPUのトップ回路 !!入出力ポート ,,ポート名,ビット数,FPGAボード上の接続デバイス,  ,入力,CLK50MHZ,1,50MHzのクロック, ,入力,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」に変更してください.