Revision 266
Added by markw about 11 years ago
| mcc216/atari800core.qsf | ||
|---|---|---|
|
set_instance_assignment -name IO_MAXIMUM_TOGGLE_RATE "0 MHz" -to VGA_B[3]
|
||
|
|
||
|
|
||
|
set_global_assignment -name QIP_FILE usbpll.qip
|
||
|
set_global_assignment -name QIP_FILE pal_pll.qip
|
||
|
set_global_assignment -name QIP_FILE pll_downstream_pal.qip
|
||
|
set_global_assignment -name QIP_FILE ntsc_pll.qip
|
||
| mcc216/atari800core_mcc.vhd | ||
|---|---|---|
|
SD_DAT0 : IN STD_LOGIC;
|
||
|
SD_CLK : OUT STD_LOGIC;
|
||
|
SD_CMD : OUT STD_LOGIC;
|
||
|
SD_DAT3 : OUT STD_LOGIC
|
||
|
SD_DAT3 : OUT STD_LOGIC;
|
||
|
|
||
|
USB2_P : INOUT STD_LOGIC;
|
||
|
USB2_N : INOUT STD_LOGIC
|
||
|
);
|
||
|
END atari800core_mcc;
|
||
|
|
||
|
ARCHITECTURE vhdl OF atari800core_mcc IS
|
||
|
|
||
|
component usbHostCyc2Wrap_usb1t11
|
||
|
port (
|
||
|
clk_i :in std_logic;
|
||
|
rst_i :in std_logic;
|
||
|
address_i : in std_logic_vector(7 downto 0);
|
||
|
data_i : in std_logic_vector(7 downto 0);
|
||
|
data_o : out std_logic_vector(7 downto 0);
|
||
|
we_i :in std_logic;
|
||
|
strobe_i :in std_logic;
|
||
|
ack_o :out std_logic;
|
||
|
irq :out std_logic;
|
||
|
usbClk :in std_logic;
|
||
|
|
||
|
USBWireVPin :in std_logic;
|
||
|
USBWireVMin :in std_logic;
|
||
|
USBWireVPout :out std_logic;
|
||
|
USBWireVMout :out std_logic;
|
||
|
USBWireOE_n :out std_logic;
|
||
|
USBFullSpeed :out std_logic
|
||
|
);
|
||
|
end component;
|
||
|
|
||
|
component hq_dac
|
||
|
port (
|
||
|
reset :in std_logic;
|
||
| ... | ... | |
|
signal freezer_enable : std_logic;
|
||
|
signal freezer_activate: std_logic;
|
||
|
|
||
|
-- usb
|
||
|
signal CLK_USB : std_logic;
|
||
|
|
||
|
signal USBWireVPin : std_logic;
|
||
|
signal USBWireVMin : std_logic;
|
||
|
signal USBWireVPout : std_logic;
|
||
|
signal USBWireVMout : std_logic;
|
||
|
signal USBWireOE_n : std_logic;
|
||
|
|
||
|
BEGIN
|
||
|
|
||
|
usbcon : usbHostCyc2Wrap_usb1t11
|
||
|
port map
|
||
|
(
|
||
|
clk_i => clk,
|
||
|
rst_i => not(reset_n),
|
||
|
address_i => others=>('0'),
|
||
|
data_i => others=>('0'),
|
||
|
data_o =>open,
|
||
|
we_i => '0',
|
||
|
strobe_i => open,
|
||
|
ack_o => open,
|
||
|
irq => open,
|
||
|
usbClk => CLK_USB,
|
||
|
|
||
|
USBWireVPin => USBWireVPin,
|
||
|
USBWireVMin => USBWireVMin,
|
||
|
USBWireVPout => USBWireVPout,
|
||
|
USBWireVMout => USBWireVMout,
|
||
|
USBWireOE_n => USBWireOE_n,
|
||
|
USBFullSpeed => open
|
||
|
);
|
||
|
|
||
|
USB2_P <= USBWireVPout when USBWireOE_n='0' else 'Z';
|
||
|
USB2_N <= USBWireVMout when USBWireOE_n='0' else 'Z';
|
||
|
USBWireVPin <= USB2_P;
|
||
|
USBWireVMin <= USB2_N;
|
||
|
|
||
|
dac_left : hq_dac
|
||
|
port map
|
||
|
(
|
||
| ... | ... | |
|
PLL_LOCKED <= EXT_PLL_LOCKED(1);
|
||
|
end generate;
|
||
|
|
||
|
usb_pll : entity work.usbpll
|
||
|
PORT MAP(inclk0 => FPGA_CLK,
|
||
|
c0 => CLK_USB,
|
||
|
locked => open);
|
||
|
|
||
|
gen_real_pll : if ext_clock=0 generate
|
||
|
gen_tv_pal : if tv=1 generate
|
||
|
mcc_pll : entity work.pal_pll
|
||
| mcc216/build.sh | ||
|---|---|---|
|
`mkdir $dir/svideo`;
|
||
|
`cp ../common/a8core/* ./$dir/common/a8core`;
|
||
|
`cp ../common/components/* ./$dir/common/components`;
|
||
|
mkdir "./$dir/common/components/usbhostslave";
|
||
|
`cp ../common/components/usbhostslave/trunk/RTL/*/*.v ./$dir/common/components/usbhostslave`;
|
||
|
`cp ../common/zpu/* ./$dir/common/zpu`;
|
||
|
`cp ./svideo/* ./$dir/svideo`;
|
||
|
|
||
|
chdir $dir;
|
||
|
`../makeqsf ../atari800core.qsf ./svideo ./common/a8core ./common/components ./common/zpu`;
|
||
|
`../makeqsf ../atari800core.qsf ./svideo ./common/a8core ./common/components ./common/zpu ./common/components/usbhostslave`;
|
||
|
|
||
|
foreach my $key (sort keys %{$variants{$variant}})
|
||
|
{
|
||
Instantiate USB host. Next need to wire to ZPU, then make ZPU firmware talk to some USB devices via this...