diff --git a/rtl/lpm_mult_4_hybr_ref.v b/rtl/lpm_mult_4_hybr_ref.v index 6be8796..118e639 100644 --- a/rtl/lpm_mult_4_hybr_ref.v +++ b/rtl/lpm_mult_4_hybr_ref.v @@ -45,10 +45,10 @@ module lpm_mult_4_hybr_ref ( input clock; input [8:0] dataa; input [7:0] datab; - output [9:0] result; + output [8:0] result; - wire [9:0] sub_wire0; - wire [9:0] result = sub_wire0[9:0]; + wire [8:0] sub_wire0; + wire [8:0] result = sub_wire0[8:0]; lpm_mult lpm_mult_component ( .clock (clock), @@ -66,7 +66,7 @@ module lpm_mult_4_hybr_ref ( lpm_mult_component.lpm_type = "LPM_MULT", lpm_mult_component.lpm_widtha = 9, lpm_mult_component.lpm_widthb = 8, - lpm_mult_component.lpm_widthp = 10; + lpm_mult_component.lpm_widthp = 9; endmodule @@ -86,7 +86,7 @@ endmodule // Retrieval info: PRIVATE: ValidConstant NUMERIC "0" // Retrieval info: PRIVATE: WidthA NUMERIC "9" // Retrieval info: PRIVATE: WidthB NUMERIC "8" -// Retrieval info: PRIVATE: WidthP NUMERIC "10" +// Retrieval info: PRIVATE: WidthP NUMERIC "9" // Retrieval info: PRIVATE: aclr NUMERIC "0" // Retrieval info: PRIVATE: clken NUMERIC "0" // Retrieval info: PRIVATE: new_diagram STRING "1" @@ -98,15 +98,15 @@ endmodule // Retrieval info: CONSTANT: LPM_TYPE STRING "LPM_MULT" // Retrieval info: CONSTANT: LPM_WIDTHA NUMERIC "9" // Retrieval info: CONSTANT: LPM_WIDTHB NUMERIC "8" -// Retrieval info: CONSTANT: LPM_WIDTHP NUMERIC "10" +// Retrieval info: CONSTANT: LPM_WIDTHP NUMERIC "9" // Retrieval info: USED_PORT: clock 0 0 0 0 INPUT NODEFVAL "clock" // Retrieval info: USED_PORT: dataa 0 0 9 0 INPUT NODEFVAL "dataa[8..0]" // Retrieval info: USED_PORT: datab 0 0 8 0 INPUT NODEFVAL "datab[7..0]" -// Retrieval info: USED_PORT: result 0 0 10 0 OUTPUT NODEFVAL "result[9..0]" +// Retrieval info: USED_PORT: result 0 0 9 0 OUTPUT NODEFVAL "result[8..0]" // Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0 // Retrieval info: CONNECT: @dataa 0 0 9 0 dataa 0 0 9 0 // Retrieval info: CONNECT: @datab 0 0 8 0 datab 0 0 8 0 -// Retrieval info: CONNECT: result 0 0 10 0 @result 0 0 10 0 +// Retrieval info: CONNECT: result 0 0 9 0 @result 0 0 9 0 // Retrieval info: GEN_FILE: TYPE_NORMAL lpm_mult_4_hybr_ref.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL lpm_mult_4_hybr_ref.inc FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL lpm_mult_4_hybr_ref.cmp FALSE diff --git a/rtl/lpm_mult_4_hybr_ref_bb.v b/rtl/lpm_mult_4_hybr_ref_bb.v index b6f812f..181e699 100644 --- a/rtl/lpm_mult_4_hybr_ref_bb.v +++ b/rtl/lpm_mult_4_hybr_ref_bb.v @@ -40,7 +40,7 @@ module lpm_mult_4_hybr_ref ( input clock; input [8:0] dataa; input [7:0] datab; - output [9:0] result; + output [8:0] result; endmodule @@ -59,7 +59,7 @@ endmodule // Retrieval info: PRIVATE: ValidConstant NUMERIC "0" // Retrieval info: PRIVATE: WidthA NUMERIC "9" // Retrieval info: PRIVATE: WidthB NUMERIC "8" -// Retrieval info: PRIVATE: WidthP NUMERIC "10" +// Retrieval info: PRIVATE: WidthP NUMERIC "9" // Retrieval info: PRIVATE: aclr NUMERIC "0" // Retrieval info: PRIVATE: clken NUMERIC "0" // Retrieval info: PRIVATE: new_diagram STRING "1" @@ -71,15 +71,15 @@ endmodule // Retrieval info: CONSTANT: LPM_TYPE STRING "LPM_MULT" // Retrieval info: CONSTANT: LPM_WIDTHA NUMERIC "9" // Retrieval info: CONSTANT: LPM_WIDTHB NUMERIC "8" -// Retrieval info: CONSTANT: LPM_WIDTHP NUMERIC "10" +// Retrieval info: CONSTANT: LPM_WIDTHP NUMERIC "9" // Retrieval info: USED_PORT: clock 0 0 0 0 INPUT NODEFVAL "clock" // Retrieval info: USED_PORT: dataa 0 0 9 0 INPUT NODEFVAL "dataa[8..0]" // Retrieval info: USED_PORT: datab 0 0 8 0 INPUT NODEFVAL "datab[7..0]" -// Retrieval info: USED_PORT: result 0 0 10 0 OUTPUT NODEFVAL "result[9..0]" +// Retrieval info: USED_PORT: result 0 0 9 0 OUTPUT NODEFVAL "result[8..0]" // Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0 // Retrieval info: CONNECT: @dataa 0 0 9 0 dataa 0 0 9 0 // Retrieval info: CONNECT: @datab 0 0 8 0 datab 0 0 8 0 -// Retrieval info: CONNECT: result 0 0 10 0 @result 0 0 10 0 +// Retrieval info: CONNECT: result 0 0 9 0 @result 0 0 9 0 // Retrieval info: GEN_FILE: TYPE_NORMAL lpm_mult_4_hybr_ref.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL lpm_mult_4_hybr_ref.inc FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL lpm_mult_4_hybr_ref.cmp FALSE diff --git a/rtl/scanconverter.v b/rtl/scanconverter.v index 3dba466..ce5ec64 100644 --- a/rtl/scanconverter.v +++ b/rtl/scanconverter.v @@ -255,7 +255,7 @@ lpm_mult_4_hybr_ref_pre B_sl_hybr_ref_pre_u .result(B_sl_hybr_ref_pre) ); -wire [9:0] Y_sl_hybr_ref, R_sl_hybr_ref, G_sl_hybr_ref, B_sl_hybr_ref; +wire [8:0] Y_sl_hybr_ref, R_sl_hybr_ref, G_sl_hybr_ref, B_sl_hybr_ref; lpm_mult_4_hybr_ref Y_sl_hybr_ref_u ( .clock(pclk_act), @@ -631,10 +631,10 @@ begin // Y_sl_hybr_ref,R_sl_hybr_ref,G_sl_hybr_ref,B_sl_hybr_ref are outputs of multiplier IPs (1 pp-stage delay) // ... step 3/3 - Y_sl_str <= {2'b0,X_SCANLINESTR} < Y_sl_hybr_ref ? 8'h0 : X_SCANLINESTR - Y_sl_hybr_ref[7:0]; - R_sl_str <= {2'b0,X_SCANLINESTR} < R_sl_hybr_ref ? 8'h0 : X_SCANLINESTR - R_sl_hybr_ref[7:0]; - G_sl_str <= {2'b0,X_SCANLINESTR} < G_sl_hybr_ref ? 8'h0 : X_SCANLINESTR - G_sl_hybr_ref[7:0]; - B_sl_str <= {2'b0,X_SCANLINESTR} < B_sl_hybr_ref ? 8'h0 : X_SCANLINESTR - B_sl_hybr_ref[7:0]; + Y_sl_str <= {1'b0,X_SCANLINESTR} < Y_sl_hybr_ref ? 8'h0 : X_SCANLINESTR - Y_sl_hybr_ref[7:0]; + R_sl_str <= {1'b0,X_SCANLINESTR} < R_sl_hybr_ref ? 8'h0 : X_SCANLINESTR - R_sl_hybr_ref[7:0]; + G_sl_str <= {1'b0,X_SCANLINESTR} < G_sl_hybr_ref ? 8'h0 : X_SCANLINESTR - G_sl_hybr_ref[7:0]; + B_sl_str <= {1'b0,X_SCANLINESTR} < B_sl_hybr_ref ? 8'h0 : X_SCANLINESTR - B_sl_hybr_ref[7:0]; // perform scanline generation (1 pp-stage) // R_sl_mult, G_sl_mult and B_sl_mult are registered outputs of IP blocks (1 pp-stage delay) diff --git a/software/sys_controller/ossc/avconfig.h b/software/sys_controller/ossc/avconfig.h index 1cb9480..d062c5a 100644 --- a/software/sys_controller/ossc/avconfig.h +++ b/software/sys_controller/ossc/avconfig.h @@ -24,7 +24,7 @@ #include "tvp7002.h" #define SCANLINESTR_MAX 15 -#define SL_HYBRIDSTR_MAX 16 +#define SL_HYBRIDSTR_MAX 28 #define HV_MASK_MAX 63 #define HV_MASK_MAX_BR 15 #define VIDEO_LPF_MAX 5 diff --git a/software/sys_controller/ossc/menu.c b/software/sys_controller/ossc/menu.c index 308152c..3fe17d2 100644 --- a/software/sys_controller/ossc/menu.c +++ b/software/sys_controller/ossc/menu.c @@ -71,7 +71,7 @@ static void sync_vth_disp(alt_u8 v) { sniprintf(menu_row2, LCD_ROW_LEN+1, "%d mV static void intclks_to_time_disp(alt_u8 v) { sniprintf(menu_row2, LCD_ROW_LEN+1, "%u.%.2u us", (unsigned)(((1000000U*v)/(TVP_INTCLK_HZ/1000))/1000), (unsigned)((((1000000U*v)/(TVP_INTCLK_HZ/1000))%1000)/10)); } static void extclks_to_time_disp(alt_u8 v) { sniprintf(menu_row2, LCD_ROW_LEN+1, "%u.%.2u us", (unsigned)(((1000000U*v)/(TVP_EXTCLK_HZ/1000))/1000), (unsigned)((((1000000U*v)/(TVP_EXTCLK_HZ/1000))%1000)/10)); } static void sl_str_disp(alt_u8 v) { sniprintf(menu_row2, LCD_ROW_LEN+1, "%u%%", ((v+1)*625)/100); } -static void sl_hybr_str_disp(alt_u8 v) { sniprintf(menu_row2, LCD_ROW_LEN+1, "%u%%", (v*125)/10); } +static void sl_hybr_str_disp(alt_u8 v) { sniprintf(menu_row2, LCD_ROW_LEN+1, "%u%%", (v*625)/100); } static void lines_disp(alt_u8 v) { sniprintf(menu_row2, LCD_ROW_LEN+1, LNG("%u lines","%u ライン"), v); } static void pixels_disp(alt_u8 v) { sniprintf(menu_row2, LCD_ROW_LEN+1, LNG("%u pixels","%u ドット"), v); } static void value_disp(alt_u8 v) { sniprintf(menu_row2, LCD_ROW_LEN+1, " %u", v); }