mirror of
https://github.com/marqs85/ossc.git
synced 2025-04-07 13:39:13 +00:00
Merge branch 'eatnumber1-psp-line3x' into release
This commit is contained in:
commit
2823ab9f8b
14
ossc.qsf
14
ossc.qsf
@ -240,4 +240,18 @@ set_global_assignment -name SDC_FILE ossc.sdc
|
||||
set_global_assignment -name CDF_FILE output_files/Chain1.cdf
|
||||
set_global_assignment -name SIGNALTAP_FILE output_files/ossc_la.stp
|
||||
set_global_assignment -name QIP_FILE rtl/char_array.qip
|
||||
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HDMI_TX_DE
|
||||
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HDMI_TX_HS
|
||||
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HDMI_TX_PCLK
|
||||
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HDMI_TX_VS
|
||||
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HDMI_TX_BD
|
||||
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HDMI_TX_GD
|
||||
set_instance_assignment -name FAST_OUTPUT_ENABLE_REGISTER ON -to HDMI_TX_RD
|
||||
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_DE
|
||||
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_HS
|
||||
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_PCLK
|
||||
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_VS
|
||||
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_BD
|
||||
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_GD
|
||||
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to HDMI_TX_RD
|
||||
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
|
8
ossc.sdc
8
ossc.sdc
@ -10,8 +10,8 @@ set_false_path -to {sys:sys_inst|sys_pio_1:pio_1|readdata*}
|
||||
### Scanconverter clock constraints ###
|
||||
|
||||
create_clock -period 108MHz -name pclk_1x [get_ports PCLK_in]
|
||||
create_clock -period 33MHz -name pclk_2x_source [get_ports PCLK_in] -add
|
||||
create_clock -period 33MHz -name pclk_3x_source [get_ports PCLK_in] -add
|
||||
create_clock -period 54MHz -name pclk_2x_source [get_ports PCLK_in] -add
|
||||
create_clock -period 54MHz -name pclk_3x_source [get_ports PCLK_in] -add
|
||||
create_clock -period 33MHz -name pclk_4x_source [get_ports PCLK_in] -add
|
||||
create_clock -period 33MHz -name pclk_5x_source [get_ports PCLK_in] -add
|
||||
|
||||
@ -54,8 +54,8 @@ foreach_in_collection c [get_clocks "pclk_1x pclk_*_source"] {
|
||||
}
|
||||
|
||||
# output delay constraints
|
||||
set IT_Tsu 1.0
|
||||
set IT_Th -0.5
|
||||
set IT_Tsu 1.5
|
||||
set IT_Th -0.3
|
||||
set critoutputs_hdmi [get_ports {HDMI_TX_RD* HDMI_TX_GD* HDMI_TX_BD* HDMI_TX_DE HDMI_TX_HS HDMI_TX_VS}]
|
||||
foreach_in_collection c [get_clocks pclk_*_out] {
|
||||
set_output_delay -clock $c -min $IT_Th $critoutputs_hdmi -add
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -65,7 +65,7 @@ static const char *l5_fmt_desc[] = { "1920x1080", "1600x1200", "1920x1200" };
|
||||
static const char *pm_240p_desc[] = { LNG("Passthru","パススルー"), "Line2x", "Line3x", "Line4x", "Line5x" };
|
||||
static const char *pm_480i_desc[] = { LNG("Passthru","パススルー"), "Line2x (bob)", "Line3x (laced)", "Line4x (bob)" };
|
||||
static const char *pm_384p_desc[] = { LNG("Passthru","パススルー"), "Line2x", "Line2x 240x360", "Line3x 240x360", "Line3x Generic" };
|
||||
static const char *pm_480p_desc[] = { LNG("Passthru","パススルー"), "Line2x" };
|
||||
static const char *pm_480p_desc[] = { LNG("Passthru","パススルー"), "Line2x", "Line3x 480x272" };
|
||||
static const char *pm_1080i_desc[] = { LNG("Passthru","パススルー"), "Line2x (bob)" };
|
||||
static const char *ar_256col_desc[] = { "4:3", "8:7" };
|
||||
static const char *tx_mode_desc[] = { "HDMI (RGB)", "HDMI (YCbCr444)", "DVI" };
|
||||
|
@ -91,8 +91,9 @@ alt_8 get_mode_id(alt_u32 totlines, alt_u8 progressive, alt_u32 hz, video_type t
|
||||
case 2: // VESA 640x480@60
|
||||
continue;
|
||||
case 3: // PSP 480x272
|
||||
// force optimized Line2x mode for 480x272
|
||||
// force optimized Line2x/3x mode for 480x272
|
||||
valid_lm[1] = MODE_L2_480x272;
|
||||
valid_lm[2] = MODE_L3_480x272;
|
||||
break;
|
||||
}
|
||||
} else { // "640x480" on the list
|
||||
@ -229,6 +230,15 @@ alt_8 get_mode_id(alt_u32 totlines, alt_u8 progressive, alt_u32 hz, video_type t
|
||||
cm.sample_mult = 7;
|
||||
cm.hsync_cut = 13;
|
||||
break;
|
||||
case MODE_L3_480x272:
|
||||
cm.fpga_vmultmode = FPGA_V_MULTMODE_3X;
|
||||
cm.fpga_hmultmode = FPGA_H_MULTMODE_OPTIMIZED;
|
||||
if (cm.cc.upsample2x) {
|
||||
cm.sample_mult = 2;
|
||||
} else {
|
||||
cm.tx_pixelrep = TX_PIXELREP_2X;
|
||||
}
|
||||
break;
|
||||
case MODE_L4_GEN_4_3:
|
||||
cm.fpga_vmultmode = FPGA_V_MULTMODE_4X;
|
||||
cm.fpga_hmultmode = FPGA_H_MULTMODE_FULLWIDTH;
|
||||
|
@ -83,16 +83,17 @@ typedef enum {
|
||||
MODE_L3_320_COL = (1<<14),
|
||||
MODE_L3_256_COL = (1<<15),
|
||||
MODE_L3_240x360 = (1<<16),
|
||||
MODE_L4_GEN_4_3 = (1<<17),
|
||||
MODE_L4_512_COL = (1<<18),
|
||||
MODE_L4_384_COL = (1<<19),
|
||||
MODE_L4_320_COL = (1<<20),
|
||||
MODE_L4_256_COL = (1<<21),
|
||||
MODE_L5_GEN_4_3 = (1<<22),
|
||||
MODE_L5_512_COL = (1<<23),
|
||||
MODE_L5_384_COL = (1<<24),
|
||||
MODE_L5_320_COL = (1<<25),
|
||||
MODE_L5_256_COL = (1<<26),
|
||||
MODE_L3_480x272 = (1<<17),
|
||||
MODE_L4_GEN_4_3 = (1<<18),
|
||||
MODE_L4_512_COL = (1<<19),
|
||||
MODE_L4_384_COL = (1<<20),
|
||||
MODE_L4_320_COL = (1<<21),
|
||||
MODE_L4_256_COL = (1<<22),
|
||||
MODE_L5_GEN_4_3 = (1<<23),
|
||||
MODE_L5_512_COL = (1<<24),
|
||||
MODE_L5_384_COL = (1<<25),
|
||||
MODE_L5_320_COL = (1<<26),
|
||||
MODE_L5_256_COL = (1<<27),
|
||||
} mode_flags;
|
||||
|
||||
typedef struct {
|
||||
@ -150,7 +151,7 @@ typedef struct {
|
||||
{ "480i", HDMI_480i60, 720, 240, 858, 0, 525, 57, 15, 62, 3, DEFAULT_SAMPLER_PHASE, (VIDEO_SDTV | VIDEO_PC), GROUP_480I, (MODE_PT | MODE_L2 | MODE_L3_GEN_16_9 | MODE_L4_GEN_4_3 | MODE_PLLDIVBY2 | MODE_INTERLACED) }, \
|
||||
{ "480p", HDMI_480p60, 720, 480, 858, 0, 525, 60, 30, 62, 6, DEFAULT_SAMPLER_PHASE, (VIDEO_EDTV | VIDEO_PC), GROUP_480P, (MODE_PT | MODE_L2) }, \
|
||||
/* 480p PSP in-game */ \
|
||||
{ "480x272", HDMI_480p60_16x9, 480, 272, 858, 0, 525, 177,134, 62, 6, DEFAULT_SAMPLER_PHASE, (VIDEO_EDTV), GROUP_480P, (MODE_PT | MODE_L2_480x272) }, \
|
||||
{ "480x272", HDMI_480p60_16x9, 480, 272, 858, 0, 525, 177,134, 62, 6, DEFAULT_SAMPLER_PHASE, (VIDEO_EDTV), GROUP_480P, (MODE_PT | MODE_L2_480x272 | MODE_L3_480x272) }, \
|
||||
{ "640x480", HDMI_640x480p60, 640, 480, 800, 0, 525, 48, 33, 96, 2, DEFAULT_SAMPLER_PHASE, (VIDEO_PC | VIDEO_EDTV), GROUP_480P, (MODE_PT | MODE_L2) }, \
|
||||
/* X68k @ 31kHz */ \
|
||||
{ "640x512", HDMI_Unknown, 640, 512, 800, 0, 568, 48, 28, 96, 2, DEFAULT_SAMPLER_PHASE, (VIDEO_PC | VIDEO_EDTV), GROUP_480P, (MODE_PT | MODE_L2) }, \
|
||||
|
23
tools/Makefile
Normal file
23
tools/Makefile
Normal file
@ -0,0 +1,23 @@
|
||||
.PHONY: generate_hex update_mif generate_firmware assemble_ossc
|
||||
|
||||
all: generate_firmware
|
||||
|
||||
generate_hex: bin2hex
|
||||
$(MAKE) -C ../software/sys_controller generate_hex
|
||||
|
||||
update_mif: generate_hex
|
||||
cd .. && quartus_cdb ossc --update_mif
|
||||
|
||||
assemble_ossc: update_mif
|
||||
cd .. && quartus_asm ossc
|
||||
|
||||
generate_firmware: assemble_ossc create_fw_img
|
||||
./create_fw_img ../output_files/ossc.rbf 0.86 aud-psp
|
||||
|
||||
bin2hex: bin2hex.c
|
||||
$(CC) bin2hex.c -o bin2hex
|
||||
|
||||
create_fw_img: create_fw_img.c
|
||||
gcc create_fw_img.c -o create_fw_img
|
||||
|
||||
# vim: set noet ts=2 sw=2 sts=2
|
Loading…
x
Reference in New Issue
Block a user