\r
#include "vga_gen.nsl"\r
#include "exp_ctrl.nsh"\r
+#include "from_ctrl.nsh"\r
\r
#define CNT1S 26'd50000000\r
\r
+#define CNT1S 26'd50000000 // 1 [s]\r
+#define CNTHS 26'd25000000 // 0.5 [s]\r
+#define CNTQS 26'd12500000 // 0.25 [s]\r
+#define CNTHQS 26'd6250000 // 0.125 [s]\r
+#define CNT10mS 26'd500000 // 10 [ms]\r
+#define CNT2mS 26'd100000 // 2 [ms]\r
+\r
+/*\r
+#define CNT1S 26'd500 // 1 [s]\r
+#define CNTHS 26'd250 // 0.5 [s]\r
+#define CNTQS 26'd125 // 0.25 [s]\r
+#define CNTHQS 26'd62 // 0.125 [s]\r
+#define CNT10mS 26'd50 // 10 [ms]\r
+#define CNT2mS 26'd10 // 2 [ms]\r
+*/\r
+\r
declare vga_top {\r
input i_sw ;\r
\r
reg r_wradrs1[8] = 0 ;\r
reg r_wradrs2[8] = 0 ;\r
\r
+ func_self test_write() ;\r
+\r
+ reg r_wait_cnt[26] = 0 ; // wait time count\r
+ reg r_wait_val[26] = 0 ; // wait time value\r
+ proc_name p_wait( r_wait_val ) ;\r
+\r
vga_gen u_VGA ;\r
exp_ctrl u_EXP ;\r
+ from_ctrl u_FROMC ;\r
\r
{\r
/* VGA */\r
fs_fifo1_charge() ;\r
}\r
}\r
+ \r
+ if(u_FROMC.fo_write_vram){\r
+ u_EXP.fi_Wr_req(u_FROMC.o_vram_adrs, u_FROMC.o_vram_wdata) ;\r
+ }\r
}\r
\r
any {\r
\r
\r
func fs_init seq {\r
-// u_VGA.fi_fifo1_reset() ;\r
-// u_VGA.fi_fifo1_reset() ;\r
-// u_VGA.fi_fifo2_reset() ;\r
-// u_VGA.fi_fifo2_reset() ;\r
-\r
/* VRAM\8f\89\8aú\89»\83\8b\81[\83`\83\93 */\r
for(r_init_cnt:=0;r_init_cnt<9600;r_init_cnt++) {\r
- u_EXP.fi_Wr_req(r_init_cnt, 8'h0F) ;\r
+// u_EXP.fi_Wr_req(r_init_cnt, 8'd0F) ;\r
+ u_EXP.fi_Wr_req(r_init_cnt, r_init_cnt[7:0]) ;\r
}\r
\r
for(r_init_cnt:=0;r_init_cnt<40;r_init_cnt++) {\r
\r
r_vram_start_adrs := r_vram_start_adrs + 14'd40 ;\r
r_reset := 0b1 ;\r
+// test_write() ;\r
}\r
\r
func fs_fifo1_write {\r
}\r
\r
func fs_fifo1_charge seq {\r
-// u_VGA.fi_fifo1_reset() ;\r
-// u_VGA.fi_fifo1_reset() ;\r
-\r
for(r_init_cnt:=0;r_init_cnt<40;r_init_cnt++) {\r
u_EXP.fi_Rd_req(r_init_cnt) ;\r
r_vram_rddata := u_EXP.o_Rdata ;\r
}\r
\r
func fs_fifo2_charge seq {\r
-// u_VGA.fi_fifo2_reset() ;\r
-// u_VGA.fi_fifo2_reset() ;\r
\r
for(r_init_cnt:=0;r_init_cnt<40;r_init_cnt++) {\r
u_EXP.fi_Rd_req(r_init_cnt) ;\r
}\r
}\r
}\r
+ \r
+ proc p_wait {\r
+ any {\r
+ r_wait_cnt == r_wait_val : {\r
+ r_wait_cnt := 0 ;\r
+ finish() ;\r
+ }\r
+ else : {\r
+ r_wait_cnt++ ;\r
+ }\r
+ } \r
+ }\r
+ \r
+ func test_write seq {\r
+ p_wait(CNT1S) ;\r
+ p_wait(CNT1S) ;\r
+ p_wait(CNT1S) ;\r
+ p_wait(CNT1S) ;\r
+ p_wait(CNT1S) ;\r
+ u_FROMC.fi_write_word(6'd0,5'd0,8'd87) ; //"W"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd1,5'd0,8'd97) ; //"a"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd2,5'd0,8'd107) ; //"k"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd3,5'd0,8'd101) ; //"e"\r
+ p_wait(CNTHS) ;\r
+\r
+ u_FROMC.fi_write_word(6'd5,5'd0,8'd117) ; //"u"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd6,5'd0,8'd112) ; //"p"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd7,5'd0,8'd44) ; //","\r
+ p_wait(CNTHS) ;\r
+\r
+ u_FROMC.fi_write_word(6'd9,5'd0,8'd78) ; //"N"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd10,5'd0,8'd101) ; //"e"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd11,5'd0,8'd111) ; //"o"\r
+ p_wait(CNTHS) ;\r
+\r
+ u_FROMC.fi_write_word(6'd12,5'd0,8'd46) ; //"."\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd13,5'd0,8'd46) ; //"."\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd14,5'd0,8'd46) ; //"."\r
+ p_wait(CNTHS) ;\r
+\r
+ p_wait(CNT1S) ;\r
+ p_wait(CNT1S) ;\r
+\r
+ u_FROMC.fi_write_word(6'd0,5'd1,8'd84) ; //"T"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd1,5'd1,8'd104) ; //"h"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd2,5'd1,8'd101) ; //"e"\r
+ p_wait(CNTHS) ;\r
+\r
+ u_FROMC.fi_write_word(6'd4,5'd1,8'd77) ; //"M"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd5,5'd1,8'd97) ; //"a"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd6,5'd1,8'd116) ; //"t"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd7,5'd1,8'd114) ; //"r"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd8,5'd1,8'd105) ; //"i"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd9,5'd1,8'd120) ; //"x"\r
+ p_wait(CNTHS) ;\r
+\r
+ u_FROMC.fi_write_word(6'd11,5'd1,8'd104) ; //"h"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd12,5'd1,8'd97) ; //"a"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd13,5'd1,8'd115) ; //"s"\r
+ p_wait(CNTHS) ;\r
+\r
+ u_FROMC.fi_write_word(6'd15,5'd1,8'd121) ; //"y"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd16,5'd1,8'd111) ; //"o"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd17,5'd1,8'd117) ; //"u"\r
+ p_wait(CNTHS) ;\r
+ \r
+ u_FROMC.fi_write_word(6'd18,5'd1,8'd46) ; //"."\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd19,5'd1,8'd46) ; //"."\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd20,5'd1,8'd46) ; //"."\r
+ p_wait(CNTHS) ;\r
+\r
+ p_wait(CNT1S) ;\r
+ p_wait(CNT1S) ;\r
+\r
+ u_FROMC.fi_write_word(6'd0,5'd2,8'd70) ; //"F"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd1,5'd2,8'd111) ; //"o"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd2,5'd2,8'd108) ; //"l"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd3,5'd2,8'd108) ; //"l"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd4,5'd2,8'd111) ; //"o"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd5,5'd2,8'd119) ; //"w"\r
+ p_wait(CNTHS) ;\r
+\r
+ u_FROMC.fi_write_word(6'd7,5'd2,8'd116) ; //"t"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd8,5'd2,8'd104) ; //"h"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd9,5'd2,8'd101) ; //"e"\r
+ p_wait(CNTHS) ;\r
+\r
+ u_FROMC.fi_write_word(6'd10,5'd2,8'd119) ; //"w"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd11,5'd2,8'd104) ; //"h"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd12,5'd2,8'd105) ; //"i"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd13,5'd2,8'd116) ; //"t"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd14,5'd2,8'd101) ; //"e"\r
+ p_wait(CNTHS) ;\r
+\r
+ u_FROMC.fi_write_word(6'd16,5'd2,8'd114) ; //"r"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd17,5'd2,8'd97) ; //"a"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd18,5'd2,8'd98) ; //"b"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd19,5'd2,8'd98) ; //"b"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd20,5'd2,8'd105) ; //"i"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd21,5'd2,8'd116) ; //"t"\r
+ p_wait(CNTHS) ;\r
+ u_FROMC.fi_write_word(6'd22,5'd2,8'd46) ; //"."\r
+ p_wait(CNTHS) ;\r
+ }\r
}
\ No newline at end of file