summaryrefslogtreecommitdiffstats
path: root/mig_test
diff options
context:
space:
mode:
Diffstat (limited to 'mig_test')
-rw-r--r--mig_test/readme.txt14
-rw-r--r--mig_test/rtl/Makefile30
-rw-r--r--mig_test/rtl/box.vhd432
-rw-r--r--mig_test/rtl/top.vhd697
-rw-r--r--mig_test/rtl/zpu_config.vhd61
-rw-r--r--mig_test/rtl_tb/top_tb.vhd408
-rw-r--r--mig_test/simulation/Makefile67
-rw-r--r--mig_test/simulation/run.do65
-rw-r--r--mig_test/simulation/wave.do27
-rw-r--r--mig_test/software/Makefile89
-rw-r--r--mig_test/software/ambainfo.c216
-rw-r--r--mig_test/software/ambainfo.h16
-rw-r--r--mig_test/software/include/common.h23
-rw-r--r--mig_test/software/include/lcd-routines.h167
-rw-r--r--mig_test/software/include/peripherie.h323
-rw-r--r--mig_test/software/include/timer.h49
-rw-r--r--mig_test/software/include/types.h43
-rw-r--r--mig_test/software/include/uart.h25
-rw-r--r--mig_test/software/include/vga.h18
-rw-r--r--mig_test/software/lib/crt0.S973
-rw-r--r--mig_test/software/lib/divmod.c50
-rw-r--r--mig_test/software/lib/premain.c26
-rw-r--r--mig_test/software/lib/udivmodsi4.c24
-rw-r--r--mig_test/software/libhal/Makefile31
-rw-r--r--mig_test/software/libhal/common.c203
-rw-r--r--mig_test/software/libhal/hw.c28
-rw-r--r--mig_test/software/libhal/include.mak16
-rw-r--r--mig_test/software/libhal/timer.c132
-rw-r--r--mig_test/software/libhal/uart.c56
-rw-r--r--mig_test/software/libhal/vga.c67
-rw-r--r--mig_test/software/main.c296
-rw-r--r--mig_test/software/monitor.c225
-rw-r--r--mig_test/software/monitor.h67
-rw-r--r--mig_test/software/monitor_functions.c134
-rw-r--r--mig_test/software/monitor_functions.h24
-rw-r--r--mig_test/software/schedule.c144
-rw-r--r--mig_test/software/schedule.h25
-rw-r--r--mig_test/synthesis/Makefile474
-rw-r--r--mig_test/synthesis/top.ucf312
-rw-r--r--mig_test/vhdl_files.txt93
40 files changed, 0 insertions, 6170 deletions
diff --git a/mig_test/readme.txt b/mig_test/readme.txt
deleted file mode 100644
index eba2fe9..0000000
--- a/mig_test/readme.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Frage: Warum geht der Speicher auf den Trenz-Boards nicht richtig?
-
-Hardware:
-Trenz Giagabee
-FTDI-Kabel
-Stromversorgung
-
-Firmware:
-MIG-Design
-ZPU mit AHB2MIG und UART
-Chipscope
-
-Software:
-MEM-Test
diff --git a/mig_test/rtl/Makefile b/mig_test/rtl/Makefile
deleted file mode 100644
index 17336cd..0000000
--- a/mig_test/rtl/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWF_Internals/FPGA/hw_sp601/bsp_zpuahb/rtl/Makefile $
-# $Date$
-# $Author$
-# $Revision$
-#
-
-
-DATE = $(shell date +"%b %e %Y %X")
-DATELENGTH = $(shell expr length "$(DATE)")
-
-SVNREV = $(shell svnversion | awk '{printf "%-21s", $$0}')
-SVNLENGTH = $(shell expr length "$(SVNREV)")
-
-
-all: timestamp.vhd
-
-timestamp.vhd:
- @echo "updating $@ ($(DATE); $(SVNREV))"
- @rm -f $@
- @echo "package timestamp is" >> $@
- @echo "" >> $@
- @echo " constant version_time_c : string( 1 to $(DATELENGTH)) := \"$(DATE)\";" >> $@
- @echo " constant svnrevision_c : string( 1 to $(SVNLENGTH)) := \"$(SVNREV)\";" >> $@
- @echo "" >> $@
- @echo "end package timestamp;" >> $@
-
-
-clean:
- rm timestamp.vhd
diff --git a/mig_test/rtl/box.vhd b/mig_test/rtl/box.vhd
deleted file mode 100644
index 229954a..0000000
--- a/mig_test/rtl/box.vhd
+++ /dev/null
@@ -1,432 +0,0 @@
---------------------------------------------------------------------------------
--- $Date$
--- $Author$
--- $Revision$
---------------------------------------------------------------------------------
-
-library ieee;
-use ieee.std_logic_1164.all;
-use ieee.std_logic_misc.or_reduce; -- by synopsis
-use ieee.numeric_std.all;
-
-library grlib;
-use grlib.amba.all;
-
-library gaisler;
-use gaisler.misc.all; -- types
-use gaisler.uart.all; -- types
-use gaisler.net.all; -- types
-use gaisler.memctrl.all; -- spimctrl types + spmictrl component
-
--- components
-library gaisler;
-use gaisler.uart.apbuart;
-use gaisler.misc.ahbdpram;
-use gaisler.misc.gptimer;
-use gaisler.misc.grgpio;
-use gaisler.misc.apbvga;
-use gaisler.misc.ahbram;
-use gaisler.memoryctrl.mctrl; -- original in esa lib
-use gaisler.net.greth;
-
-library techmap;
-use techmap.gencomp.all; -- constants
-
-library zpu;
-use zpu.zpu_wrapper_package.all; -- types
-use zpu.zpu_config.all;
-use zpu.zpupkg.all;
-use zpu.zpu_wrapper_package.zpu_ahb;
-use zpu.zpu_wrapper_package.dualport_ram_ahb_wrapper; -- for medium zpu
-
-library hzdr;
-use hzdr.component_package.debug_con_apb;
-
-library work;
-use work.timestamp.all;
-
-
-
-entity box is
- generic (
- system_frequency : integer;
- simulation_active : std_ulogic
- );
- port (
- clk : in std_ulogic; -- clock
- reset_n : in std_ulogic; -- synchronous reset (low active)
- break : out std_ulogic; -- to stop simulation
- --
- uarti : in uart_in_type; -- UART
- uarto : out uart_out_type;
- --
- gpioi : in gpio_in_type; -- GPIO (button, switches, LED, header pins)
- gpioo : out gpio_out_type
- );
-end entity box;
-
-
-
-
-architecture rtl of box is
-
- signal box_reset : std_ulogic;
- signal box_reset_n : std_ulogic;
- --
- signal debug_con_apb_i0_softreset : std_ulogic;
- --
- signal ahbctrl_i0_msti : ahb_mst_in_type;
- signal ahbmo : ahb_mst_out_vector := (others => ahbm_none);
- signal ahbctrl_i0_slvi : ahb_slv_in_type;
- signal ahbso : ahb_slv_out_vector := (others => ahbs_none);
- signal apbctrl_i0_apbi : apb_slv_in_type;
- signal apbo : apb_slv_out_vector := (others => apb_none);
- --
- signal gpti : gptimer_in_type;
- signal gptimer_i0_gpto : gptimer_out_type;
- --
- signal grgpio_i0_gpioo : gpio_out_type;
- --
- signal box_mctrl_wpo : wprot_out_type := (wprothit => '0');
- --
- -- put these signals in entity (later)
- signal ethi : eth_in_type; -- ethernet PHY
- signal etho : eth_out_type;
-
-begin
-
- ---------------------------------------------------------------------
- -- reset
-
- box_reset <= (not reset_n) or debug_con_apb_i0_softreset;
- box_reset_n <= not box_reset;
-
- ---------------------------------------------------------------------
- -- AHB bus masters
- ---------------------------------------------------------------------
-
- ---------------------------------------------------------------------
- -- zpu
-
- zpu_ahb_i0: zpu_ahb
- generic map (
- hindex => 0, -- : integer := 0
- zpu_small => false -- : boolean := true
- )
- port map (
- clk => clk, -- : in std_ulogic;
- reset => box_reset, -- : in std_ulogic;
- ahbi => ahbctrl_i0_msti, -- : in ahb_mst_in_type;
- ahbo => ahbmo(0), -- : out ahb_mst_out_type;
- irq => or_reduce(ahbctrl_i0_msti.hirq), -- : in std_ulogic;
- break => break -- : out std_ulogic
- );
- ---------------------------------------------------------------------
-
-
- ---------------------------------------------------------------------
- -- ethernet (ahb master + apb slave)
-
- greth_i0: greth
- generic map (
- hindex => 1,
- pindex => 5,
- paddr => 5,
- pirq => 5,
- memtech => inferred,
- mdcscaler => 20,
- enable_mdio => 1,
- fifosize => 32,
- nsync => 1,
- phyrstadr => 7 -- depends on used hardware
- )
- port map (
- rst => reset_n,
- clk => clk,
- ahbmi => ahbctrl_i0_msti,
- ahbmo => ahbmo(1),
- apbi => apbctrl_i0_apbi,
- apbo => apbo(5),
- ethi => ethi,
- etho => etho
- );
- ---------------------------------------------------------------------
-
-
- ---------------------------------------------------------------------
- -- AHB CONTROLLER
-
- --ahbmo(0) <= (ahbm_none); -- zpu_ahb_i0
- --ahbmo(1) <= (ahbm_none); -- greth_i0
- ahbmo( 2) <= ahbm_none;
- ahbmo( 3) <= ahbm_none;
- ahbmo( 4) <= ahbm_none;
- ahbmo( 5) <= ahbm_none;
- ahbmo( 6) <= ahbm_none;
- ahbmo( 7) <= ahbm_none;
- ahbmo( 8) <= ahbm_none;
- ahbmo( 9) <= ahbm_none;
- ahbmo(10) <= ahbm_none;
- ahbmo(11) <= ahbm_none;
- ahbmo(12) <= ahbm_none;
- ahbmo(13) <= ahbm_none;
- ahbmo(14) <= ahbm_none;
- ahbmo(15) <= ahbm_none;
- --
- --ahbso(0) <= (ahbs_none); -- apbctrl_i0
- --ahbso(1) <= (ahbs_none); -- ahbram_i0
- ahbso( 2) <= (ahbs_none);
- --ahbso(3) <= (ahbs_none); -- dualport_ram_ahb_wrapper_i0
- ahbso( 4) <= (ahbs_none); -- spimctrl
- ahbso( 5) <= (ahbs_none);
- ahbso( 6) <= (ahbs_none);
- ahbso( 7) <= (ahbs_none);
- ahbso( 8) <= (ahbs_none);
- ahbso( 9) <= (ahbs_none);
- ahbso(10) <= (ahbs_none);
- ahbso(11) <= (ahbs_none);
- ahbso(12) <= (ahbs_none);
- ahbso(13) <= (ahbs_none);
- ahbso(14) <= (ahbs_none);
- ahbso(15) <= (ahbs_none);
-
- ahbctrl_i0 : ahbctrl -- AHB arbiter/multiplexer
- generic map (
- defmast => 0, -- default master
- timeout => 11,
- disirq => 0, -- enable interrupt routing
- enbusmon => 0, -- enable bus monitor
- rrobin => 0,
- assertwarn => 1, -- enable assertions for warnings
- asserterr => 1 -- enable assertions for errors
- )
- port map (
- rst => box_reset_n, -- : in std_ulogic;
- clk => clk, -- : in std_ulogic;
- msti => ahbctrl_i0_msti, -- : out ahb_mst_in_type;
- msto => ahbmo, -- : in ahb_mst_out_vector;
- slvi => ahbctrl_i0_slvi, -- : out ahb_slv_in_type;
- slvo => ahbso, -- : in ahb_slv_out_vector;
- testen => '0',
- testrst => '1',
- scanen => '0',
- testoen => '1'
- );
- ----------------------------------------------------------------------
-
-
- ---------------------------------------------------------------------
- -- AHB bus slaves
- ---------------------------------------------------------------------
-
-
- ---------------------------------------------------------------------
- -- AHB RAM (internal 4k BRAM)
-
- ahbram_i0 : ahbram
- generic map (
- hindex => 1,
- haddr => 16#a00#,
- hmask => 16#FFF#,
- tech => inferred,
- kbytes => 4
- )
- port map (
- rst => box_reset_n,
- clk => clk,
- ahbsi => ahbctrl_i0_slvi,
- ahbso => ahbso(1)
- );
- ----------------------------------------------------------------------
-
-
- ---------------------------------------------------------------------
- -- AHB ZPU memory (instruction + data memory)
-
- dualport_ram_ahb_wrapper_i0 : dualport_ram_ahb_wrapper
- generic map (
- hindex => 3,
- haddr => 16#000#
- )
- port map (
- clk => clk,
- reset => box_reset,
- ahbsi => ahbctrl_i0_slvi,
- ahbso => ahbso(3)
- );
- ----------------------------------------------------------------------
-
-
--- ---------------------------------------------------------------------
--- -- AHB SPI memory controller
--- -- for SPI X4 (Winbond W25Q64VSFIG) 64-Mbit flash memory
--- spimctrl_i0 : spimctrl
--- generic map (
--- hindex => 4, -- : integer := 0; -- AHB slave index
--- faddr => 16#E00#, -- : integer := 16#000#; -- Flash map base address
--- fmask => 16#FF8#, -- : integer := 16#fff#; -- Flash area mask
--- ioaddr => 16#002#, -- : integer := 16#000#; -- I/O base address
--- iomask => 16#fff#, -- : integer := 16#fff#; -- I/O mask
--- readcmd => 16#3b#, -- : integer range 0 to 255 := 16#0B#; -- Mem. dev. READ command
--- dummybyte => 1, -- : integer range 0 to 1 := 1; -- Dummy byte after cmd
--- dualoutput => 1 -- : integer range 0 to 1 := 0; -- Enable dual output
--- )
--- port map (
--- rstn => box_reset_n, -- : in std_ulogic;
--- clk => clk, -- : in std_ulogic;
--- ahbsi => ahbctrl_i0_slvi, -- : in ahb_slv_in_type;
--- ahbso => ahbso(4), -- : out ahb_slv_out_type;
--- spii => spmi, -- : in spimctrl_in_type;
--- spio => spmo -- : out spimctrl_out_type
--- );
--- ---------------------------------------------------------------------
-
-
-
-
- ---------------------------------------------------------------------
- -- AHB/APB bridge
-
- --apbo( 0) <= (apb_none); -- debug_con_apb_i0
- --apbo( 1) <= (apb_none); -- apbuart_i0
- --apbo( 2) <= (apb_none); -- gptimer_i0
- apbo( 3) <= (apb_none);
- --apbo( 4) <= (apb_none); -- grgpio_i0
- --apbo( 5) <= (apb_none); -- greth_i0
- apbo( 6) <= (apb_none); -- no apbvga_i0
- apbo( 7) <= (apb_none); -- no i2cmst_i0
- apbo( 8) <= (apb_none);
- apbo( 9) <= (apb_none);
- apbo(10) <= (apb_none);
- apbo(11) <= (apb_none);
- apbo(12) <= (apb_none);
- apbo(13) <= (apb_none);
- apbo(14) <= (apb_none);
- apbo(15) <= (apb_none);
-
- apbctrl_i0: apbctrl
- generic map (
- hindex => 0, -- : integer := 0;
- haddr => 16#800#, -- : integer := 0;
- nslaves => 16, -- : integer range 1 to NAPBSLV := NAPBSLV;
- asserterr => 1,
- assertwarn => 1
- )
- port map (
- rst => box_reset_n, -- : in std_ulogic;
- clk => clk, -- : in std_ulogic;
- ahbi => ahbctrl_i0_slvi, -- : in ahb_slv_in_type;
- ahbo => ahbso(0), -- : out ahb_slv_out_type;
- apbi => apbctrl_i0_apbi, -- : out apb_slv_in_type;
- apbo => apbo -- : in apb_slv_out_vector
- );
- ----------------------------------------------------------------------
-
-
- ---------------------------------------------------------------------
- -- APB bus slaves
- ---------------------------------------------------------------------
-
-
- ---------------------------------------------------------------------
- -- debug console (for fast simulation output)
- debug_con_apb_i0: debug_con_apb
- generic map (
- pindex => 0, -- : integer := 0;
- paddr => 0, -- : integer := 0;
- -- values taken from timestamp.vhd:
- svnrevision => svnrevision_c, -- : string( 1 to 21) := "unknown SVN revision ";
- version_time => version_time_c, -- : string( 1 to 21) := "undefined version "
- system_frequency => system_frequency -- : integer
- )
- port map (
- rst => box_reset_n, -- : in std_ulogic;
- clk => clk, -- : in std_ulogic;
- apbi => apbctrl_i0_apbi, -- : in apb_slv_in_type;
- apbo => apbo(0), -- : out apb_slv_out_type;
- softreset => debug_con_apb_i0_softreset -- : out std_ulogic
- );
- ---------------------------------------------------------------------
-
-
- ---------------------------------------------------------------------
- -- uart
- apbuart_i0: apbuart
- generic map (
- pindex => 1,
- paddr => 1,
- console => 1, -- fast simulation output
- parity => 0, -- no parity
- flow => 1, -- hardware handshake
- fifosize => 16
- )
- port map (
- rst => box_reset_n, -- : in std_ulogic;
- clk => clk, -- : in std_ulogic;
- apbi => apbctrl_i0_apbi, -- : in apb_slv_in_type;
- apbo => apbo(1), -- : out apb_slv_out_type;
- uarti => uarti, -- : in uart_in_type;
- uarto => uarto -- : out uart_out_type);
- );
- ---------------------------------------------------------------------
-
-
- ---------------------------------------------------------------------
- -- GP timer (grip.pdf p. 279)
-
- gpti.extclk <= '0'; -- alternativ timer clock
- gpti.dhalt <= '0'; -- debug halt
- gpti.wdogen <= '0'; -- watchdog enable
-
- gptimer_i0: gptimer
- generic map (
- pindex => 2,
- paddr => 2,
- pirq => 3,
- sepirq => 0, -- use separate interupts for each timer
- sbits => 8, -- prescaler bits
- ntimers => 2, -- number of timers
- nbits => 24 -- timer bits
- )
- port map (
- rst => box_reset_n,
- clk => clk,
- apbi => apbctrl_i0_apbi,
- apbo => apbo(2),
- gpti => gpti,
- gpto => gptimer_i0_gpto
- );
- ---------------------------------------------------------------------
-
-
- ---------------------------------------------------------------------
- -- GPIO
- grgpio_i0: grgpio
- generic map (
- pindex => 4,
- paddr => 4,
--- imask => 16#00000FF0#, -- interrupt mask (+ enable per software)
- syncrst => 1, -- only synchronous reset
- nbits => 32 -- number of port bits
- )
- port map (
- rst => box_reset_n,
- clk => clk,
- apbi => apbctrl_i0_apbi,
- apbo => apbo(4),
- gpioi => gpioi,
- gpioo => grgpio_i0_gpioo
- );
- gpioo <= grgpio_i0_gpioo;
- -- gpio.dout gpio.din
- ---------------------------------------------------------------------
- -- 3 - 0 LED unused
- -- 4 MAC_DATA MAC_DATA
- -- 5 user_led unused
- -- 15 - 8 unused unused
- -- 30 - 16 unused unused
- -- 31 unused simulation_active
- ---------------------------------------------------------------------
-
-
-end architecture rtl;
diff --git a/mig_test/rtl/top.vhd b/mig_test/rtl/top.vhd
deleted file mode 100644
index 872af28..0000000
--- a/mig_test/rtl/top.vhd
+++ /dev/null
@@ -1,697 +0,0 @@
--- top-level beam position monitor
--- für Trenz TE0600
---
--- FPGA: LX45, LX100 or LX150
--- 10/100/1000 Gigabit Ethernet
--- 2*64 MByte DDR3 SDRAM
--- 8 MByte SPI Flash
---
--- enthält alle Buffer/Treiber für die FPGA-Pins
---
---
-
---------------------------------------------------------------------------------
--- $Date$
--- $Author$
--- $Revision$
---------------------------------------------------------------------------------
-
-library ieee;
-use ieee.std_logic_1164.all;
-
-entity top is
- port (
- -- pragma translate_off
- simulation_break : out std_logic;
- -- pragma translate_on
- -- system stuff
- CLK : in std_logic; -- 125 MHz
- --RESET_N : in std_logic;
- POWER_FAIL_N : in std_logic;
- WATCHDOG : out std_logic;
- REPROG_N : out std_logic;
- -- user clock
- USER_CLK : in std_logic;
- --
- -- DDR3 SDRAM
- MCB1_DRAM_A : out std_logic_vector(14 downto 0);
- MCB1_DRAM_BA : out std_logic_vector(2 downto 0);
- MCB1_DRAM_CAS_B : out std_logic;
- MCB1_DRAM_RAS_B : out std_logic;
- MCB1_DRAM_WE_B : out std_logic;
- MCB1_DRAM_CKE : out std_logic;
- MCB1_DRAM_CK_N : out std_logic;
- MCB1_DRAM_CK_P : out std_logic;
- MCB1_DRAM_DQ : inout std_logic_vector(15 downto 0);
- MCB1_DRAM_LDM : out std_logic;
- MCB1_DRAM_UDM : out std_logic;
- MCB1_DRAM_DQS_N : inout std_logic_vector(1 downto 0);
- MCB1_DRAM_DQS_P : inout std_logic_vector(1 downto 0);
- MCB1_DRAM_ODT : out std_logic;
- MCB1_DRAM_RESET_B : out std_logic;
- MCB1_RZQ : inout std_logic;
- MCB1_ZIO : inout std_logic;
- --
- MCB3_DRAM_A : out std_logic_vector(14 downto 0);
- MCB3_DRAM_BA : out std_logic_vector(2 downto 0);
- MCB3_DRAM_CAS_B : out std_logic;
- MCB3_DRAM_RAS_B : out std_logic;
- MCB3_DRAM_WE_B : out std_logic;
- MCB3_DRAM_CKE : out std_logic;
- MCB3_DRAM_CK_N : out std_logic;
- MCB3_DRAM_CK_P : out std_logic;
- MCB3_DRAM_DQ : inout std_logic_vector(15 downto 0);
- MCB3_DRAM_LDM : out std_logic;
- MCB3_DRAM_UDM : out std_logic;
- MCB3_DRAM_DQS_N : inout std_logic_vector(1 downto 0);
- MCB3_DRAM_DQS_P : inout std_logic_vector(1 downto 0);
- MCB3_DRAM_ODT : out std_logic;
- MCB3_DRAM_RESET_B : out std_logic;
- MCB3_RZQ : inout std_logic;
- MCB3_ZIO : inout std_logic;
- --
- -- Ethernet PHY
- -- phy address = 0b00111
- -- config(0) = '1'
- -- config(1) = '0'
- -- config(2) = '1'
- -- config(3) = PHY_L10
- -- config(4) = '1'
- -- config(5) = '1'
- -- config(6) = PHY_LED_RX
- --PHY_125 : in std_logic; -- 125 MHz from phy, used as clk
- PHY_MDIO : inout std_logic;
- PHY_MDC : out std_logic;
- PHY_INT : in std_logic;
- PHY_RESET_B : out std_logic;
- PHY_CRS : in std_logic;
- PHY_COL : inout std_logic;
- PHY_TXEN : out std_logic;
- PHY_TXCLK : in std_logic;
- PHY_TXER : out std_logic;
- PHY_TXD : out std_logic_vector(7 downto 0);
- PHY_GTXCLK : out std_logic;
- PHY_RXCLK : in std_logic;
- PHY_RXER : in std_logic;
- PHY_RXDV : in std_logic;
- PHY_RXD : in std_logic_vector(7 downto 0);
- --
- -- quad SPI Flash (W25Q64BV)
- SPI_FLASH_CSO_B : out std_logic;
- SPI_FLASH_CCLK : out std_logic;
- SPI_FLASH_IO : inout std_logic_vector(3 downto 0); -- ( 0=di, 1=do, 2=wp_n, 3=hold_n)
- --
- -- EEPROM (48bit MAC address, DS2502-E48)
- MAC_DATA : inout std_logic;
- --
- -- B2B J1 user IO
- B2B_B2_L57_N : inout std_logic;
- B2B_B2_L57_P : inout std_logic;
- B2B_B2_L49_N : inout std_logic;
- B2B_B2_L49_P : inout std_logic;
- B2B_B2_L48_N : inout std_logic;
- B2B_B2_L48_P : inout std_logic;
- B2B_B2_L45_N : inout std_logic;
- B2B_B2_L45_P : inout std_logic;
- B2B_B2_L43_N : inout std_logic;
- B2B_B2_L43_P : inout std_logic;
- B2B_B2_L41_N : inout std_logic;
- B2B_B2_L41_P : inout std_logic;
- B2B_B2_L21_P : inout std_logic;
- B2B_B2_L21_N : inout std_logic;
- B2B_B2_L15_P : inout std_logic;
- B2B_B2_L15_N : inout std_logic;
- B2B_B2_L31_N : inout std_logic; -- single ended
- B2B_B2_L32_N : inout std_logic; -- single ended
- B2B_B2_L60_P : inout std_logic;
- B2B_B2_L60_N : inout std_logic;
- B2B_B2_L59_N : inout std_logic;
- B2B_B2_L59_P : inout std_logic;
- B2B_B2_L44_N : inout std_logic;
- B2B_B2_L44_P : inout std_logic;
- B2B_B2_L42_N : inout std_logic;
- B2B_B2_L42_P : inout std_logic;
- B2B_B2_L18_P : inout std_logic;
- B2B_B2_L18_N : inout std_logic;
- B2B_B2_L8_N : inout std_logic;
- B2B_B2_L8_P : inout std_logic;
- B2B_B2_L11_P : inout std_logic;
- B2B_B2_L11_N : inout std_logic;
- B2B_B2_L6_P : inout std_logic;
- B2B_B2_L6_N : inout std_logic;
- B2B_B2_L5_P : inout std_logic;
- B2B_B2_L5_N : inout std_logic;
- B2B_B2_L9_N : inout std_logic;
- B2B_B2_L9_P : inout std_logic;
- B2B_B2_L4_N : inout std_logic;
- B2B_B2_L4_P : inout std_logic;
- B2B_B2_L29_N : inout std_logic; -- single ended
- B2B_B2_L10_N : inout std_logic;
- B2B_B2_L10_P : inout std_logic;
- B2B_B2_L2_N : inout std_logic;
- B2B_B2_L2_P : inout std_logic;
- --
- -- B2B J2 user IO
- B2B_B3_L60_N : inout std_logic;
- B2B_B3_L60_P : inout std_logic;
- B2B_B3_L9_N : inout std_logic;
- B2B_B3_L9_P : inout std_logic;
- B2B_B0_L3_P : inout std_logic;
- B2B_B0_L3_N : inout std_logic;
- B2B_B3_L59_P : inout std_logic;
- B2B_B3_L59_N : inout std_logic;
- B2B_B0_L32_P : inout std_logic;
- B2B_B0_L32_N : inout std_logic;
- B2B_B0_L7_N : inout std_logic;
- B2B_B0_L7_P : inout std_logic;
- B2B_B0_L33_N : inout std_logic;
- B2B_B0_L33_P : inout std_logic;
- B2B_B0_L36_P : inout std_logic;
- B2B_B0_L36_N : inout std_logic;
- B2B_B0_L49_P : inout std_logic;
- B2B_B0_L49_N : inout std_logic;
- B2B_B0_L62_P : inout std_logic;
- B2B_B0_L62_N : inout std_logic;
- B2B_B0_L66_P : inout std_logic;
- B2B_B0_L66_N : inout std_logic;
- B2B_B1_L10_P : inout std_logic;
- B2B_B1_L10_N : inout std_logic;
- B2B_B1_L9_P : inout std_logic;
- B2B_B1_L9_N : inout std_logic;
- B2B_B1_L21_N : inout std_logic;
- B2B_B1_L21_P : inout std_logic;
- B2B_B1_L61_P : inout std_logic;
- B2B_B1_L61_N : inout std_logic;
- B2B_B0_L1 : inout std_logic; -- used as reset_n
- B2B_B0_L2_P : inout std_logic;
- B2B_B0_L2_N : inout std_logic;
- B2B_B0_L4_N : inout std_logic;
- B2B_B0_L4_P : inout std_logic;
- B2B_B0_L5_N : inout std_logic;
- B2B_B0_L5_P : inout std_logic;
- B2B_B0_L6_N : inout std_logic;
- B2B_B0_L6_P : inout std_logic;
- B2B_B0_L8_N : inout std_logic;
- B2B_B0_L8_P : inout std_logic;
- B2B_B0_L34_N : inout std_logic;
- B2B_B0_L34_P : inout std_logic;
- B2B_B0_L35_N : inout std_logic;
- B2B_B0_L35_P : inout std_logic;
- B2B_B0_L37_N : inout std_logic;
- B2B_B0_L37_P : inout std_logic;
- B2B_B0_L38_N : inout std_logic;
- B2B_B0_L38_P : inout std_logic;
- B2B_B0_L50_N : inout std_logic;
- B2B_B0_L50_P : inout std_logic;
- B2B_B0_L51_N : inout std_logic;
- B2B_B0_L51_P : inout std_logic;
- B2B_B0_L63_N : inout std_logic;
- B2B_B0_L63_P : inout std_logic;
- B2B_B0_L64_N : inout std_logic;
- B2B_B0_L64_P : inout std_logic;
- B2B_B0_L65_N : inout std_logic;
- B2B_B0_L65_P : inout std_logic;
- B2B_B1_L20_P : inout std_logic;
- B2B_B1_L20_N : inout std_logic;
- B2B_B1_L19_P : inout std_logic;
- B2B_B1_L19_N : inout std_logic;
- B2B_B1_L59 : inout std_logic;
- --
- -- misc
- USER_LED_N : out std_logic;
- AV : in std_logic_vector(3 downto 0);
- BR : in std_logic_vector(3 downto 0)
- );
-end entity top;
-
-
-
-library ieee;
-use ieee.std_logic_1164.all;
-use ieee.numeric_std.all;
-
-library gaisler;
-use gaisler.misc.all; -- types
-use gaisler.uart.all; -- types
-use gaisler.net.all; -- types
-use gaisler.memctrl.all; -- spimctrl types
-
-
-architecture Behavioral of top is
-
- function simulation_active return std_ulogic is
- variable result : std_ulogic;
- begin
- result := '0';
- -- pragma translate_off
- result := '1';
- -- pragma translate_on
- return result;
- end function simulation_active;
-
-
-
- alias CARRIER_LED0 : std_logic is B2B_B3_L59_N;
- alias CARRIER_LED1 : std_logic is B2B_B3_L59_P;
- alias CARRIER_LED2 : std_logic is B2B_B3_L9_P;
- alias CARRIER_LED3 : std_logic is B2B_B3_L9_N;
- --
- alias UART_RX : std_logic is B2B_B2_L9_N;
- alias UART_TX : std_logic is B2B_B2_L6_P;
-
-
- constant system_frequency_c : natural := 125_000_000;
-
- -- system signals
- signal clk_box : std_ulogic;
- signal clk_ready : std_ulogic := '1';
- --
- signal reset_shreg : std_ulogic_vector(3 downto 0) := (others => '1');
- signal reset : std_ulogic := '1';
- signal reset_n : std_ulogic := '0';
- --
- -- io signals
- signal box_i0_break : std_ulogic;
- signal gpioi : gpio_in_type;
- signal uarti : uart_in_type;
- --
- signal box_i0_gpioo : gpio_out_type;
- signal box_i0_uarto : uart_out_type;
-
-
-begin
-
- -- default output drivers
- -- for unused blocks
- PHY_MDC <= '1';
- PHY_TXEN <= '0';
- PHY_TXER <= '0';
- PHY_TXD <= (others => '1');
- PHY_GTXCLK <= '0';
- PHY_RESET_B <= '0';
- PHY_COL <= 'Z';
- PHY_MDIO <= 'Z';
-
- MCB1_DRAM_RESET_B <= '0';
- MCB1_DRAM_A <= (others => '1');
- MCB1_DRAM_BA <= (others => '1');
- MCB1_DRAM_CAS_B <= '1';
- MCB1_DRAM_RAS_B <= '1';
- MCB1_DRAM_WE_B <= '1';
- MCB1_DRAM_CKE <= '0';
- MCB1_DRAM_CK_N <= '0';
- MCB1_DRAM_CK_P <= '1';
- MCB1_DRAM_LDM <= '0';
- MCB1_DRAM_UDM <= '0';
- MCB1_DRAM_ODT <= '1';
- MCB1_DRAM_DQS_N <= (others => 'Z');
- MCB1_DRAM_DQS_P <= (others => 'Z');
- MCB1_DRAM_DQ <= (others => 'Z');
-
- MCB3_DRAM_RESET_B <= '0';
- MCB3_DRAM_A <= (others => '1');
- MCB3_DRAM_BA <= (others => '1');
- MCB3_DRAM_CAS_B <= '1';
- MCB3_DRAM_RAS_B <= '1';
- MCB3_DRAM_WE_B <= '1';
- MCB3_DRAM_CKE <= '0';
- MCB3_DRAM_CK_N <= '0';
- MCB3_DRAM_CK_P <= '1';
- MCB3_DRAM_LDM <= '0';
- MCB3_DRAM_UDM <= '0';
- MCB3_DRAM_ODT <= '1';
- MCB3_DRAM_DQS_N <= (others => 'Z');
- MCB3_DRAM_DQS_P <= (others => 'Z');
- MCB3_DRAM_DQ <= (others => 'Z');
-
- SPI_FLASH_CSO_B <= '1';
- SPI_FLASH_CCLK <= '1';
- SPI_FLASH_IO <= (others => 'Z');
-
- WATCHDOG <= 'Z'; -- disable watchdog
- --REPROG_N <= '1';
-
- MAC_DATA <= 'Z';
-
- -- B2B J1 user IO
- B2B_B2_L57_N <= 'Z';
- B2B_B2_L57_P <= 'Z';
- B2B_B2_L49_N <= 'Z';
- B2B_B2_L49_P <= 'Z';
- B2B_B2_L48_N <= 'Z';
- B2B_B2_L48_P <= 'Z';
- B2B_B2_L45_N <= 'Z';
- B2B_B2_L45_P <= 'Z';
- B2B_B2_L43_N <= 'Z';
- B2B_B2_L43_P <= 'Z';
- B2B_B2_L41_N <= 'Z';
- B2B_B2_L41_P <= 'Z';
- B2B_B2_L21_P <= 'Z';
- B2B_B2_L21_N <= 'Z';
- B2B_B2_L15_P <= 'Z';
- B2B_B2_L15_N <= 'Z';
- B2B_B2_L31_N <= 'Z';
- B2B_B2_L32_N <= 'Z';
- B2B_B2_L60_P <= 'Z';
- B2B_B2_L60_N <= 'Z';
- B2B_B2_L59_N <= 'Z';
- B2B_B2_L59_P <= 'Z';
- B2B_B2_L44_N <= 'Z';
- B2B_B2_L44_P <= 'Z';
- B2B_B2_L42_N <= 'Z';
- B2B_B2_L42_P <= 'Z';
- B2B_B2_L18_P <= 'Z';
- B2B_B2_L18_N <= 'Z';
- B2B_B2_L8_N <= 'Z';
- B2B_B2_L8_P <= 'Z';
- B2B_B2_L11_P <= 'Z';
- B2B_B2_L11_N <= 'Z';
- B2B_B2_L6_P <= 'Z';
- B2B_B2_L6_N <= 'Z';
- B2B_B2_L5_P <= 'Z';
- B2B_B2_L5_N <= 'Z';
- B2B_B2_L9_N <= 'Z';
- B2B_B2_L9_P <= 'Z';
- B2B_B2_L4_N <= 'Z';
- B2B_B2_L4_P <= 'Z';
- B2B_B2_L29_N <= 'Z';
- B2B_B2_L10_N <= 'Z';
- B2B_B2_L10_P <= 'Z';
- B2B_B2_L2_N <= 'Z';
- B2B_B2_L2_P <= 'Z';
- B2B_B3_L60_N <= 'Z';
- B2B_B3_L60_P <= 'Z';
- --B2B_B3_L9_N <= 'Z';
- --B2B_B3_L9_P <= 'Z';
- B2B_B0_L3_P <= 'Z';
- B2B_B0_L3_N <= 'Z';
-
- -- B2B J2 user IO
- --B2B_B3_L59_P <= 'Z';
- --B2B_B3_L59_N <= 'Z';
- B2B_B0_L32_P <= 'Z';
- B2B_B0_L32_N <= 'Z';
- B2B_B0_L7_N <= 'Z';
- B2B_B0_L7_P <= 'Z';
- B2B_B0_L33_N <= 'Z';
- B2B_B0_L33_P <= 'Z';
- B2B_B0_L36_P <= 'Z';
- B2B_B0_L36_N <= 'Z';
- B2B_B0_L49_P <= 'Z';
- B2B_B0_L49_N <= 'Z';
- B2B_B0_L62_P <= 'Z';
- B2B_B0_L62_N <= 'Z';
- B2B_B0_L66_P <= 'Z';
- B2B_B0_L66_N <= 'Z';
- B2B_B1_L10_P <= 'Z';
- B2B_B1_L10_N <= 'Z';
- B2B_B1_L9_P <= 'Z';
- B2B_B1_L9_N <= 'Z';
- B2B_B1_L21_N <= 'Z';
- B2B_B1_L21_P <= 'Z';
- B2B_B1_L61_P <= 'Z';
- B2B_B1_L61_N <= 'Z';
- B2B_B0_L2_P <= 'Z';
- B2B_B0_L2_N <= 'Z';
- B2B_B0_L4_N <= 'Z';
- B2B_B0_L4_P <= 'Z';
- B2B_B0_L5_N <= 'Z';
- B2B_B0_L5_P <= 'Z';
- B2B_B0_L6_N <= 'Z';
- B2B_B0_L6_P <= 'Z';
- B2B_B0_L8_N <= 'Z';
- B2B_B0_L8_P <= 'Z';
- B2B_B0_L34_N <= 'Z';
- B2B_B0_L34_P <= 'Z';
- B2B_B0_L35_N <= 'Z';
- B2B_B0_L35_P <= 'Z';
- B2B_B0_L37_N <= 'Z';
- B2B_B0_L37_P <= 'Z';
- B2B_B0_L38_N <= 'Z';
- B2B_B0_L38_P <= 'Z';
- B2B_B0_L50_N <= 'Z';
- B2B_B0_L50_P <= 'Z';
- B2B_B0_L51_N <= 'Z';
- B2B_B0_L51_P <= 'Z';
- B2B_B0_L63_N <= 'Z';
- B2B_B0_L63_P <= 'Z';
- B2B_B0_L64_N <= 'Z';
- B2B_B0_L64_P <= 'Z';
- B2B_B0_L65_N <= 'Z';
- B2B_B0_L65_P <= 'Z';
- B2B_B1_L20_P <= 'Z';
- B2B_B1_L20_N <= 'Z';
- B2B_B1_L19_P <= 'Z';
- B2B_B1_L19_N <= 'Z';
- B2B_B1_L59 <= 'Z';
-
-
- ------------------------------------------------------------
- -- (internal) reset generation
- -- with wait for locked DCM
- reset_generator_p : process(clk_box, clk_ready)
- begin
- if clk_ready = '0' then
- reset_shreg <= (others => '1');
- elsif rising_edge(clk_box) then
- reset_shreg <= reset_shreg(reset_shreg'left-1 downto 0) & '0';
- end if;
- end process;
- reset <= reset_shreg(reset_shreg'left);
- reset_n <= not reset;
-
-
- ------------------------------------------------------------
- -- clock selection
- clk_box <= CLK; -- 125 MHz
-
- -- used IOs
- -- LEDs
- gpioi.sig_in <= (others => '0');
- gpioi.sig_en <= (others => '0');
- gpioi.din <= (4 => MAC_DATA,
- 31 => simulation_active,
- others => '0');
- CARRIER_LED0 <= not box_i0_gpioo.dout(0);
- CARRIER_LED1 <= not box_i0_gpioo.dout(1);
- CARRIER_LED2 <= not box_i0_gpioo.dout(2);
- CARRIER_LED3 <= not box_i0_gpioo.dout(3);
- user_led_n <= not box_i0_gpioo.dout(5);
- MAC_DATA <= box_i0_gpioo.dout(4) when box_i0_gpioo.oen(4) = '0' else 'Z';
-
- -- uart i/o
- uarti.rxd <= UART_RX;
- uarti.ctsn <= '0';
- uarti.extclk <= '0';
- --
- UART_TX <= box_i0_uarto.txd;
-
-
- ------------------------------------------------------------
- -- box system
- box_i0 : entity work.box
- generic map (
- simulation_active => simulation_active, --: std_ulogic;
- system_frequency => system_frequency_c --: integer
- )
- port map (
- clk => clk_box, --: in std_ulogic;
- reset_n => reset_n, --: in std_ulogic;
- break => box_i0_break, --: out std_ulogic;
- --
- uarti => uarti, --: in uart_in_type;
- uarto => box_i0_uarto, --: out uart_out_type;
- --
- gpioi => gpioi, --: in gpio_in_type;
- gpioo => box_i0_gpioo --: out gpio_out_type;
- );
-
-
- ------------------------------------------------------------
- -- break handling
- --
- -- pragma translate_off
- simulation_break <= box_i0_break;
- -- pragma translate_on
-
- -- reboot FPGA for real
- REPROG_N <= not box_i0_break;
-
-
- ------------------------------------------------------------
- -- MCB stuff
- --
- mcb_stuff_b : block
-
- begin
-
- memc1_tb_top_inst : memc1_tb_top
- generic map (
- C_SIMULATION => C1_SIMULATION,
- C_P0_MASK_SIZE => C1_P0_MASK_SIZE,
- C_P0_DATA_PORT_SIZE => C1_P0_DATA_PORT_SIZE,
- C_P1_MASK_SIZE => C1_P1_MASK_SIZE,
- C_P1_DATA_PORT_SIZE => C1_P1_DATA_PORT_SIZE,
- C_NUM_DQ_PINS => C1_NUM_DQ_PINS,
- C_MEM_BURST_LEN => C1_MEM_BURST_LEN,
- C_MEM_NUM_COL_BITS => C1_MEM_NUM_COL_BITS,
- C_p0_BEGIN_ADDRESS => C1_p0_BEGIN_ADDRESS,
- C_p0_DATA_MODE => C1_p0_DATA_MODE,
- C_p0_END_ADDRESS => C1_p0_END_ADDRESS,
- C_p0_PRBS_EADDR_MASK_POS => C1_p0_PRBS_EADDR_MASK_POS,
- C_p0_PRBS_SADDR_MASK_POS => C1_p0_PRBS_SADDR_MASK_POS,
- C_p1_BEGIN_ADDRESS => C1_p1_BEGIN_ADDRESS,
- C_p1_DATA_MODE => C1_p1_DATA_MODE,
- C_p1_END_ADDRESS => C1_p1_END_ADDRESS,
- C_p1_PRBS_EADDR_MASK_POS => C1_p1_PRBS_EADDR_MASK_POS,
- C_p1_PRBS_SADDR_MASK_POS => C1_p1_PRBS_SADDR_MASK_POS,
- C_p2_BEGIN_ADDRESS => C1_p2_BEGIN_ADDRESS,
- C_p2_DATA_MODE => C1_p2_DATA_MODE,
- C_p2_END_ADDRESS => C1_p2_END_ADDRESS,
- C_p2_PRBS_EADDR_MASK_POS => C1_p2_PRBS_EADDR_MASK_POS,
- C_p2_PRBS_SADDR_MASK_POS => C1_p2_PRBS_SADDR_MASK_POS
- )
- port map (
- error => c1_error,
- calib_done => c1_calib_done,
- clk0 => c1_clk0,
- rst0 => c1_rst0,
- cmp_error => c1_cmp_error,
- cmp_data_valid => c1_cmp_data_valid,
- vio_modify_enable => c1_vio_modify_enable,
- error_status => c1_error_status,
- vio_data_mode_value => c1_vio_data_mode_value,
- vio_addr_mode_value => c1_vio_addr_mode_value,
- cmp_data => c1_cmp_data,
- p0_mcb_cmd_en_o => c1_p0_cmd_en,
- p0_mcb_cmd_instr_o => c1_p0_cmd_instr,
- p0_mcb_cmd_bl_o => c1_p0_cmd_bl,
- p0_mcb_cmd_addr_o => c1_p0_cmd_byte_addr,
- p0_mcb_cmd_full_i => c1_p0_cmd_full,
- p0_mcb_wr_en_o => c1_p0_wr_en,
- p0_mcb_wr_mask_o => c1_p0_wr_mask,
- p0_mcb_wr_data_o => c1_p0_wr_data,
- p0_mcb_wr_full_i => c1_p0_wr_full,
- p0_mcb_wr_fifo_counts => c1_p0_wr_count,
- p0_mcb_rd_en_o => c1_p0_rd_en,
- p0_mcb_rd_data_i => c1_p0_rd_data,
- p0_mcb_rd_empty_i => c1_p0_rd_empty,
- p0_mcb_rd_fifo_counts => c1_p0_rd_count,
- p1_mcb_cmd_en_o => c1_p1_cmd_en,
- p1_mcb_cmd_instr_o => c1_p1_cmd_instr,
- p1_mcb_cmd_bl_o => c1_p1_cmd_bl,
- p1_mcb_cmd_addr_o => c1_p1_cmd_byte_addr,
- p1_mcb_cmd_full_i => c1_p1_cmd_full,
- p1_mcb_wr_en_o => c1_p1_wr_en,
- p1_mcb_wr_mask_o => c1_p1_wr_mask,
- p1_mcb_wr_data_o => c1_p1_wr_data,
- p1_mcb_wr_full_i => c1_p1_wr_full,
- p1_mcb_wr_fifo_counts => c1_p1_wr_count,
- p1_mcb_rd_en_o => c1_p1_rd_en,
- p1_mcb_rd_data_i => c1_p1_rd_data,
- p1_mcb_rd_empty_i => c1_p1_rd_empty,
- p1_mcb_rd_fifo_counts => c1_p1_rd_count,
- p2_mcb_cmd_en_o => c1_p2_cmd_en,
- p2_mcb_cmd_instr_o => c1_p2_cmd_instr,
- p2_mcb_cmd_bl_o => c1_p2_cmd_bl,
- p2_mcb_cmd_addr_o => c1_p2_cmd_byte_addr,
- p2_mcb_cmd_full_i => c1_p2_cmd_full,
- p2_mcb_wr_en_o => c1_p2_wr_en,
- p2_mcb_wr_mask_o => c1_p2_wr_mask,
- p2_mcb_wr_data_o => c1_p2_wr_data,
- p2_mcb_wr_full_i => c1_p2_wr_full,
- p2_mcb_wr_fifo_counts => c1_p2_wr_count,
- p2_mcb_rd_en_o => c1_p2_rd_en,
- p2_mcb_rd_data_i => c1_p2_rd_data,
- p2_mcb_rd_empty_i => c1_p2_rd_empty,
- p2_mcb_rd_fifo_counts => c1_p2_rd_count
- );
-
-
- memc3_tb_top_inst : memc3_tb_top
- generic map (
- C_SIMULATION => C3_SIMULATION,
- C_P0_MASK_SIZE => C3_P0_MASK_SIZE,
- C_P0_DATA_PORT_SIZE => C3_P0_DATA_PORT_SIZE,
- C_P1_MASK_SIZE => C3_P1_MASK_SIZE,
- C_P1_DATA_PORT_SIZE => C3_P1_DATA_PORT_SIZE,
- C_NUM_DQ_PINS => C3_NUM_DQ_PINS,
- C_MEM_BURST_LEN => C3_MEM_BURST_LEN,
- C_MEM_NUM_COL_BITS => C3_MEM_NUM_COL_BITS,
- C_p0_BEGIN_ADDRESS => C3_p0_BEGIN_ADDRESS,
- C_p0_DATA_MODE => C3_p0_DATA_MODE,
- C_p0_END_ADDRESS => C3_p0_END_ADDRESS,
- C_p0_PRBS_EADDR_MASK_POS => C3_p0_PRBS_EADDR_MASK_POS,
- C_p0_PRBS_SADDR_MASK_POS => C3_p0_PRBS_SADDR_MASK_POS,
- C_p1_BEGIN_ADDRESS => C3_p1_BEGIN_ADDRESS,
- C_p1_DATA_MODE => C3_p1_DATA_MODE,
- C_p1_END_ADDRESS => C3_p1_END_ADDRESS,
- C_p1_PRBS_EADDR_MASK_POS => C3_p1_PRBS_EADDR_MASK_POS,
- C_p1_PRBS_SADDR_MASK_POS => C3_p1_PRBS_SADDR_MASK_POS,
- C_p2_BEGIN_ADDRESS => C3_p2_BEGIN_ADDRESS,
- C_p2_DATA_MODE => C3_p2_DATA_MODE,
- C_p2_END_ADDRESS => C3_p2_END_ADDRESS,
- C_p2_PRBS_EADDR_MASK_POS => C3_p2_PRBS_EADDR_MASK_POS,
- C_p2_PRBS_SADDR_MASK_POS => C3_p2_PRBS_SADDR_MASK_POS
- )
- port map (
- error => c3_error,
- calib_done => c3_calib_done,
- clk0 => c3_clk0,
- rst0 => c3_rst0,
- cmp_error => c3_cmp_error,
- cmp_data_valid => c3_cmp_data_valid,
- vio_modify_enable => c3_vio_modify_enable,
- error_status => c3_error_status,
- vio_data_mode_value => c3_vio_data_mode_value,
- vio_addr_mode_value => c3_vio_addr_mode_value,
- cmp_data => c3_cmp_data,
- p0_mcb_cmd_en_o => c3_p0_cmd_en,
- p0_mcb_cmd_instr_o => c3_p0_cmd_instr,
- p0_mcb_cmd_bl_o => c3_p0_cmd_bl,
- p0_mcb_cmd_addr_o => c3_p0_cmd_byte_addr,
- p0_mcb_cmd_full_i => c3_p0_cmd_full,
- p0_mcb_wr_en_o => c3_p0_wr_en,
- p0_mcb_wr_mask_o => c3_p0_wr_mask,
- p0_mcb_wr_data_o => c3_p0_wr_data,
- p0_mcb_wr_full_i => c3_p0_wr_full,
- p0_mcb_wr_fifo_counts => c3_p0_wr_count,
- p0_mcb_rd_en_o => c3_p0_rd_en,
- p0_mcb_rd_data_i => c3_p0_rd_data,
- p0_mcb_rd_empty_i => c3_p0_rd_empty,
- p0_mcb_rd_fifo_counts => c3_p0_rd_count,
- p1_mcb_cmd_en_o => c3_p1_cmd_en,
- p1_mcb_cmd_instr_o => c3_p1_cmd_instr,
- p1_mcb_cmd_bl_o => c3_p1_cmd_bl,
- p1_mcb_cmd_addr_o => c3_p1_cmd_byte_addr,
- p1_mcb_cmd_full_i => c3_p1_cmd_full,
- p1_mcb_wr_en_o => c3_p1_wr_en,
- p1_mcb_wr_mask_o => c3_p1_wr_mask,
- p1_mcb_wr_data_o => c3_p1_wr_data,
- p1_mcb_wr_full_i => c3_p1_wr_full,
- p1_mcb_wr_fifo_counts => c3_p1_wr_count,
- p1_mcb_rd_en_o => c3_p1_rd_en,
- p1_mcb_rd_data_i => c3_p1_rd_data,
- p1_mcb_rd_empty_i => c3_p1_rd_empty,
- p1_mcb_rd_fifo_counts => c3_p1_rd_count,
- p2_mcb_cmd_en_o => c3_p2_cmd_en,
- p2_mcb_cmd_instr_o => c3_p2_cmd_instr,
- p2_mcb_cmd_bl_o => c3_p2_cmd_bl,
- p2_mcb_cmd_addr_o => c3_p2_cmd_byte_addr,
- p2_mcb_cmd_full_i => c3_p2_cmd_full,
- p2_mcb_wr_en_o => c3_p2_wr_en,
- p2_mcb_wr_mask_o => c3_p2_wr_mask,
- p2_mcb_wr_data_o => c3_p2_wr_data,
- p2_mcb_wr_full_i => c3_p2_wr_full,
- p2_mcb_wr_fifo_counts => c3_p2_wr_count,
- p2_mcb_rd_en_o => c3_p2_rd_en,
- p2_mcb_rd_data_i => c3_p2_rd_data,
- p2_mcb_rd_empty_i => c3_p2_rd_empty,
- p2_mcb_rd_fifo_counts => c3_p2_rd_count
- );
-
- end block mcb_stuff_b;
-
-
-end architecture Behavioral;
-
diff --git a/mig_test/rtl/zpu_config.vhd b/mig_test/rtl/zpu_config.vhd
deleted file mode 100644
index ae410e2..0000000
--- a/mig_test/rtl/zpu_config.vhd
+++ /dev/null
@@ -1,61 +0,0 @@
--- ZPU
---
--- Copyright 2004-2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
---
--- The FreeBSD license
---
--- Redistribution and use in source and binary forms, with or without
--- modification, are permitted provided that the following conditions
--- are met:
---
--- 1. Redistributions of source code must retain the above copyright
--- notice, this list of conditions and the following disclaimer.
--- 2. Redistributions in binary form must reproduce the above
--- copyright notice, this list of conditions and the following
--- disclaimer in the documentation and/or other materials
--- provided with the distribution.
---
--- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY
--- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
--- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
--- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
--- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
--- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
--- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
--- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
--- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
--- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
--- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
--- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---
--- The views and conclusions contained in the software and documentation
--- are those of the authors and should not be interpreted as representing
--- official policies, either expressed or implied, of the ZPU Project.
-
-library ieee;
-use ieee.std_logic_1164.all;
-use ieee.numeric_std.all;
-
-package zpu_config is
- -- generate trace output
- constant Generate_Trace : boolean := false;
- constant wordPower : integer := 5;
- -- during simulation, set this to '0' to get matching trace.txt
- constant DontCareValue : std_logic := '0';
- -- Clock frequency in MHz.
- constant ZPU_Frequency : std_ulogic_vector(7 downto 0) := std_ulogic_vector(to_unsigned(50, 8));
- -- This is the msb address bit. bytes=2^(maxAddrBitIncIO+1)
- constant maxAddrBitIncIO : integer := 31; -- BLa: 31 -- was: 27
- --constant maxAddrBitBRAM : integer := 13; -- 16k
- constant maxAddrBitBRAM : integer := 14; -- 32k
- --constant maxAddrBitBRAM : integer := 16;
-
- --
- -- derived constants
- constant bram_words : integer := 2 ** (maxAddrBitBRAM - 1);
-
- -- start byte address of stack.
- -- point to top of RAM - 2*words
- constant spStart : unsigned(maxAddrBitIncIO downto 0) :=
- to_unsigned((4*bram_words)-8, maxAddrBitIncIO+1);
-end zpu_config;
diff --git a/mig_test/rtl_tb/top_tb.vhd b/mig_test/rtl_tb/top_tb.vhd
deleted file mode 100644
index a8c3ead..0000000
--- a/mig_test/rtl_tb/top_tb.vhd
+++ /dev/null
@@ -1,408 +0,0 @@
-library ieee;
-use ieee.std_logic_1164.all;
-
-
-entity top_tb is
-end top_tb;
-
-
-architecture testbench of top_tb is
-
- constant system_frequency : integer := 125_000_000; -- MHz
- constant tb_clk_period : time := (1 sec) / system_frequency;
-
- signal simulation_run : boolean := true;
- signal tb_simulation_break : std_logic;
- --
- signal tb_clk : std_logic := '0';
- signal tb_reset_n : std_logic;
- signal tb_power_fail_n : std_logic;
- signal tb_watchdog : std_logic;
- signal tb_reprog_n : std_logic;
- --
- signal tb_user_clk : std_logic;
- --
- signal tb_mcb1_dram_a : std_logic_vector(14 downto 0);
- signal tb_mcb1_dram_ba : std_logic_vector(2 downto 0);
- signal tb_mcb1_dram_cas_b : std_logic;
- signal tb_mcb1_dram_ras_b : std_logic;
- signal tb_mcb1_dram_we_b : std_logic;
- signal tb_mcb1_dram_cke : std_logic;
- signal tb_mcb1_dram_ck_n : std_logic;
- signal tb_mcb1_dram_ck_p : std_logic;
- signal tb_mcb1_dram_dq : std_logic_vector(15 downto 0);
- signal tb_mcb1_dram_ldm : std_logic;
- signal tb_mcb1_dram_udm : std_logic;
- signal tb_mcb1_dram_dqs_n : std_logic_vector( 1 downto 0);
- signal tb_mcb1_dram_dqs_p : std_logic_vector( 1 downto 0);
- signal tb_mcb1_dram_odt : std_logic;
- signal tb_mcb1_dram_reset_b : std_logic;
- --
- signal tb_mcb3_dram_a : std_logic_vector(14 downto 0);
- signal tb_mcb3_dram_ba : std_logic_vector(2 downto 0);
- signal tb_mcb3_dram_cas_b : std_logic;
- signal tb_mcb3_dram_ras_b : std_logic;
- signal tb_mcb3_dram_we_b : std_logic;
- signal tb_mcb3_dram_cke : std_logic;
- signal tb_mcb3_dram_ck_n : std_logic;
- signal tb_mcb3_dram_ck_p : std_logic;
- signal tb_mcb3_dram_dq : std_logic_vector(15 downto 0);
- signal tb_mcb3_dram_ldm : std_logic;
- signal tb_mcb3_dram_udm : std_logic;
- signal tb_mcb3_dram_dqs_n : std_logic_vector( 1 downto 0);
- signal tb_mcb3_dram_dqs_p : std_logic_vector( 1 downto 0);
- signal tb_mcb3_dram_odt : std_logic;
- signal tb_mcb3_dram_reset_b : std_logic;
- --
- signal tb_phy_mdio : std_logic;
- signal tb_phy_mdc : std_logic;
- signal tb_phy_int : std_logic;
- signal tb_phy_reset_b : std_logic;
- signal tb_phy_crs : std_logic;
- signal tb_phy_col : std_logic;
- signal tb_phy_txen : std_logic;
- signal tb_phy_txclk : std_logic;
- signal tb_phy_txer : std_logic;
- signal tb_phy_txd : std_logic_vector(7 downto 0);
- signal tb_phy_gtxclk : std_logic;
- signal tb_phy_rxclk : std_logic;
- signal tb_phy_rxer : std_logic;
- signal tb_phy_rxdv : std_logic;
- signal tb_phy_rxd : std_logic_vector(7 downto 0);
- --
- signal tb_spi_flash_cso_b : std_logic;
- signal tb_spi_flash_cclk : std_logic;
- signal tb_spi_flash_io : std_logic_vector(3 downto 0); -- ( 0=di, 1=do, 2=wp_n, 3=hold_n)
- --
- signal tb_mac_data : std_logic;
- --
- signal tb_b2b_b2_l57_n : std_logic;
- signal tb_b2b_b2_l57_p : std_logic;
- signal tb_b2b_b2_l49_n : std_logic;
- signal tb_b2b_b2_l49_p : std_logic;
- signal tb_b2b_b2_l48_n : std_logic;
- signal tb_b2b_b2_l48_p : std_logic;
- signal tb_b2b_b2_l45_n : std_logic;
- signal tb_b2b_b2_l45_p : std_logic;
- signal tb_b2b_b2_l43_n : std_logic;
- signal tb_b2b_b2_l43_p : std_logic;
- signal tb_b2b_b2_l41_n : std_logic;
- signal tb_b2b_b2_l41_p : std_logic;
- signal tb_b2b_b2_l21_p : std_logic;
- signal tb_b2b_b2_l21_n : std_logic;
- signal tb_b2b_b2_l15_p : std_logic;
- signal tb_b2b_b2_l15_n : std_logic;
- signal tb_b2b_b2_l31_n : std_logic; -- single ended
- signal tb_b2b_b2_l32_n : std_logic; -- single ended
- signal tb_b2b_b2_l60_p : std_logic;
- signal tb_b2b_b2_l60_n : std_logic;
- signal tb_b2b_b2_l59_n : std_logic;
- signal tb_b2b_b2_l59_p : std_logic;
- signal tb_b2b_b2_l44_n : std_logic;
- signal tb_b2b_b2_l44_p : std_logic;
- signal tb_b2b_b2_l42_n : std_logic;
- signal tb_b2b_b2_l42_p : std_logic;
- signal tb_b2b_b2_l18_p : std_logic;
- signal tb_b2b_b2_l18_n : std_logic;
- signal tb_b2b_b2_l8_n : std_logic;
- signal tb_b2b_b2_l8_p : std_logic;
- signal tb_b2b_b2_l11_p : std_logic;
- signal tb_b2b_b2_l11_n : std_logic;
- signal tb_b2b_b2_l6_p : std_logic;
- signal tb_b2b_b2_l6_n : std_logic;
- signal tb_b2b_b2_l5_p : std_logic;
- signal tb_b2b_b2_l5_n : std_logic;
- signal tb_b2b_b2_l9_n : std_logic;
- signal tb_b2b_b2_l9_p : std_logic;
- signal tb_b2b_b2_l4_n : std_logic;
- signal tb_b2b_b2_l4_p : std_logic;
- signal tb_b2b_b2_l29_n : std_logic; -- single ended
- signal tb_b2b_b2_l10_n : std_logic;
- signal tb_b2b_b2_l10_p : std_logic;
- signal tb_b2b_b2_l2_n : std_logic;
- signal tb_b2b_b2_l2_p : std_logic;
- --
- signal tb_b2b_b3_l60_n : std_logic;
- signal tb_b2b_b3_l60_p : std_logic;
- signal tb_b2b_b3_l9_n : std_logic;
- signal tb_b2b_b3_l9_p : std_logic;
- signal tb_b2b_b0_l3_p : std_logic;
- signal tb_b2b_b0_l3_n : std_logic;
- signal tb_b2b_b3_l59_p : std_logic;
- signal tb_b2b_b3_l59_n : std_logic;
- signal tb_b2b_b0_l32_p : std_logic;
- signal tb_b2b_b0_l32_n : std_logic;
- signal tb_b2b_b0_l7_n : std_logic;
- signal tb_b2b_b0_l7_p : std_logic;
- signal tb_b2b_b0_l33_n : std_logic;
- signal tb_b2b_b0_l33_p : std_logic;
- signal tb_b2b_b0_l36_p : std_logic;
- signal tb_b2b_b0_l36_n : std_logic;
- signal tb_b2b_b0_l49_p : std_logic;
- signal tb_b2b_b0_l49_n : std_logic;
- signal tb_b2b_b0_l62_p : std_logic;
- signal tb_b2b_b0_l62_n : std_logic;
- signal tb_b2b_b0_l66_p : std_logic;
- signal tb_b2b_b0_l66_n : std_logic;
- signal tb_b2b_b1_l10_p : std_logic;
- signal tb_b2b_b1_l10_n : std_logic;
- signal tb_b2b_b1_l9_p : std_logic;
- signal tb_b2b_b1_l9_n : std_logic;
- signal tb_b2b_b1_l21_n : std_logic;
- signal tb_b2b_b1_l21_p : std_logic;
- signal tb_b2b_b1_l61_p : std_logic;
- signal tb_b2b_b1_l61_n : std_logic;
- --
- signal tb_b2b_b0_l2_p : std_logic;
- signal tb_b2b_b0_l2_n : std_logic;
- signal tb_b2b_b0_l4_n : std_logic;
- signal tb_b2b_b0_l4_p : std_logic;
- signal tb_b2b_b0_l5_n : std_logic;
- signal tb_b2b_b0_l5_p : std_logic;
- signal tb_b2b_b0_l6_n : std_logic;
- signal tb_b2b_b0_l6_p : std_logic;
- signal tb_b2b_b0_l8_n : std_logic;
- signal tb_b2b_b0_l8_p : std_logic;
- signal tb_b2b_b0_l34_n : std_logic;
- signal tb_b2b_b0_l34_p : std_logic;
- signal tb_b2b_b0_l35_n : std_logic;
- signal tb_b2b_b0_l35_p : std_logic;
- signal tb_b2b_b0_l37_n : std_logic;
- signal tb_b2b_b0_l37_p : std_logic;
- signal tb_b2b_b0_l38_n : std_logic;
- signal tb_b2b_b0_l38_p : std_logic;
- signal tb_b2b_b0_l50_n : std_logic;
- signal tb_b2b_b0_l50_p : std_logic;
- signal tb_b2b_b0_l51_n : std_logic;
- signal tb_b2b_b0_l51_p : std_logic;
- signal tb_b2b_b0_l63_n : std_logic;
- signal tb_b2b_b0_l63_p : std_logic;
- signal tb_b2b_b0_l64_n : std_logic;
- signal tb_b2b_b0_l64_p : std_logic;
- signal tb_b2b_b0_l65_n : std_logic;
- signal tb_b2b_b0_l65_p : std_logic;
- signal tb_b2b_b1_l20_p : std_logic;
- signal tb_b2b_b1_l20_n : std_logic;
- signal tb_b2b_b1_l19_p : std_logic;
- signal tb_b2b_b1_l19_n : std_logic;
- signal tb_b2b_b1_l59 : std_logic;
- --
- signal tb_user_led_n : std_logic;
- signal tb_av : std_logic_vector(3 downto 0);
- signal tb_br : std_logic_vector(3 downto 0);
-
-
-begin
-
- tb_clk <= not tb_clk after tb_clk_period / 2 when simulation_run;
- tb_reset_n <= '0', '1' after tb_clk_period * 6.66;
-
- top_i0: entity work.top
- port map (
- -- pragma translate_off
- simulation_break => tb_simulation_break, -- : out std_logic;
- -- pragma translate_on
- -- system stuff
- CLK => tb_clk, -- : in std_logic; -- 125 MHz
- --RESET_N => tb_reset_n, -- : in std_logic;
- POWER_FAIL_N => tb_power_fail_n, -- : in std_logic;
- WATCHDOG => tb_watchdog, -- : out std_logic;
- REPROG_N => tb_reprog_n, -- : out std_logic;
- -- user clock --
- USER_CLK => tb_user_clk, -- : in std_logic;
- -- --
- -- DDR3 SDRAM --
- MCB1_DRAM_A => tb_mcb1_dram_a, -- : out std_logic_vector(14 downto 0);
- MCB1_DRAM_BA => tb_mcb1_dram_ba, -- : out std_logic_vector(2 downto 0);
- MCB1_DRAM_CAS_B => tb_mcb1_dram_cas_b, -- : out std_logic;
- MCB1_DRAM_RAS_B => tb_mcb1_dram_ras_b, -- : out std_logic;
- MCB1_DRAM_WE_B => tb_mcb1_dram_we_b, -- : out std_logic;
- MCB1_DRAM_CKE => tb_mcb1_dram_cke, -- : out std_logic;
- MCB1_DRAM_CK_N => tb_mcb1_dram_ck_n, -- : out std_logic;
- MCB1_DRAM_CK_P => tb_mcb1_dram_ck_p, -- : out std_logic;
- MCB1_DRAM_DQ => tb_mcb1_dram_dq, -- : inout std_logic_vector(15 downto 0);
- MCB1_DRAM_LDM => tb_mcb1_dram_ldm, -- : out std_logic;
- MCB1_DRAM_UDM => tb_mcb1_dram_udm, -- : out std_logic;
- MCB1_DRAM_DQS_N => tb_mcb1_dram_dqs_n, -- : inout std_logic_vector;
- MCB1_DRAM_DQS_P => tb_mcb1_dram_dqs_p, -- : inout std_logic_vector;
- MCB1_DRAM_ODT => tb_mcb1_dram_odt, -- : out std_logic;
- MCB1_DRAM_RESET_B => tb_mcb1_dram_reset_b, -- : out std_logic;
- -- --
- MCB3_DRAM_A => tb_mcb3_dram_a, -- : out std_logic_vector(14 downto 0);
- MCB3_DRAM_BA => tb_mcb3_dram_ba, -- : out std_logic_vector(2 downto 0);
- MCB3_DRAM_CAS_B => tb_mcb3_dram_cas_b, -- : out std_logic;
- MCB3_DRAM_RAS_B => tb_mcb3_dram_ras_b, -- : out std_logic;
- MCB3_DRAM_WE_B => tb_mcb3_dram_we_b, -- : out std_logic;
- MCB3_DRAM_CKE => tb_mcb3_dram_cke, -- : out std_logic;
- MCB3_DRAM_CK_N => tb_mcb3_dram_ck_n, -- : out std_logic;
- MCB3_DRAM_CK_P => tb_mcb3_dram_ck_p, -- : out std_logic;
- MCB3_DRAM_DQ => tb_mcb3_dram_dq, -- : inout std_logic_vector(15 downto 0);
- MCB3_DRAM_LDM => tb_mcb3_dram_ldm, -- : out std_logic;
- MCB3_DRAM_UDM => tb_mcb3_dram_udm, -- : out std_logic;
- MCB3_DRAM_DQS_N => tb_mcb3_dram_dqs_n, -- : inout std_logic_vector;
- MCB3_DRAM_DQS_P => tb_mcb3_dram_dqs_p, -- : inout std_logic_vector;
- MCB3_DRAM_ODT => tb_mcb3_dram_odt, -- : out std_logic;
- MCB3_DRAM_RESET_B => tb_mcb3_dram_reset_b, -- : out std_logic;
- --
- -- Ethernet PHY
- -- phy address = 0b00111
- -- config(0) = '1'
- -- config(1) = '0'
- -- config(2) = '1'
- -- config(3) = PHY_L10
- -- config(4) = '1'
- -- config(5) = '1'
- -- config(6) = PHY_LED_RX
- --PHY_125 -- : in std_logic; -- 125 MHz from phy, used as clk
- PHY_MDIO => tb_phy_mdio, -- : inout std_logic;
- PHY_MDC => tb_phy_mdc, -- : out std_logic;
- PHY_INT => tb_phy_int, -- : in std_logic;
- PHY_RESET_B => tb_phy_reset_b, -- : out std_logic;
- PHY_CRS => tb_phy_crs, -- : in std_logic;
- PHY_COL => tb_phy_col, -- : inout std_logic;
- PHY_TXEN => tb_phy_txen, -- : out std_logic;
- PHY_TXCLK => tb_phy_txclk, -- : in std_logic;
- PHY_TXER => tb_phy_txer, -- : out std_logic;
- PHY_TXD => tb_phy_txd, -- : out std_logic_vector(7 downto 0);
- PHY_GTXCLK => tb_phy_gtxclk, -- : out std_logic;
- PHY_RXCLK => tb_phy_rxclk, -- : in std_logic;
- PHY_RXER => tb_phy_rxer, -- : in std_logic;
- PHY_RXDV => tb_phy_rxdv, -- : in std_logic;
- PHY_RXD => tb_phy_rxd, -- : in std_logic_vector(7 downto 0);
- --
- -- quad SPI Flash (W25Q64BV)
- SPI_FLASH_CSO_B => tb_spi_flash_cso_b, -- : out std_logic;
- SPI_FLASH_CCLK => tb_spi_flash_cclk, -- : out std_logic;
- SPI_FLASH_IO => tb_spi_flash_io, -- : inout std_logic_vector(3 downto 0); -- ( 0=di, 1=do, 2=wp_n, 3=hold_n)
- --
- -- EEPROM (48bit MAC address, DS2502-E48)
- MAC_DATA => tb_mac_data, -- : inout std_logic;
- --
- -- B2B J1 user IO
- B2B_B2_L57_N => tb_b2b_b2_l57_n, -- : inout std_logic;
- B2B_B2_L57_P => tb_b2b_b2_l57_p, -- : inout std_logic;
- B2B_B2_L49_N => tb_b2b_b2_l49_n, -- : inout std_logic;
- B2B_B2_L49_P => tb_b2b_b2_l49_p, -- : inout std_logic;
- B2B_B2_L48_N => tb_b2b_b2_l48_n, -- : inout std_logic;
- B2B_B2_L48_P => tb_b2b_b2_l48_p, -- : inout std_logic;
- B2B_B2_L45_N => tb_b2b_b2_l45_n, -- : inout std_logic;
- B2B_B2_L45_P => tb_b2b_b2_l45_p, -- : inout std_logic;
- B2B_B2_L43_N => tb_b2b_b2_l43_n, -- : inout std_logic;
- B2B_B2_L43_P => tb_b2b_b2_l43_p, -- : inout std_logic;
- B2B_B2_L41_N => tb_b2b_b2_l41_n, -- : inout std_logic;
- B2B_B2_L41_P => tb_b2b_b2_l41_p, -- : inout std_logic;
- B2B_B2_L21_P => tb_b2b_b2_l21_p, -- : inout std_logic;
- B2B_B2_L21_N => tb_b2b_b2_l21_n, -- : inout std_logic;
- B2B_B2_L15_P => tb_b2b_b2_l15_p, -- : inout std_logic;
- B2B_B2_L15_N => tb_b2b_b2_l15_n, -- : inout std_logic;
- B2B_B2_L31_N => tb_b2b_b2_l31_n, -- : inout std_logic; -- single ended
- B2B_B2_L32_N => tb_b2b_b2_l32_n, -- : inout std_logic; -- single ended
- B2B_B2_L60_P => tb_b2b_b2_l60_p, -- : inout std_logic;
- B2B_B2_L60_N => tb_b2b_b2_l60_n, -- : inout std_logic;
- B2B_B2_L59_N => tb_b2b_b2_l59_n, -- : inout std_logic;
- B2B_B2_L59_P => tb_b2b_b2_l59_p, -- : inout std_logic;
- B2B_B2_L44_N => tb_b2b_b2_l44_n, -- : inout std_logic;
- B2B_B2_L44_P => tb_b2b_b2_l44_p, -- : inout std_logic;
- B2B_B2_L42_N => tb_b2b_b2_l42_n, -- : inout std_logic;
- B2B_B2_L42_P => tb_b2b_b2_l42_p, -- : inout std_logic;
- B2B_B2_L18_P => tb_b2b_b2_l18_p, -- : inout std_logic;
- B2B_B2_L18_N => tb_b2b_b2_l18_n, -- : inout std_logic;
- B2B_B2_L8_N => tb_b2b_b2_l8_n, -- : inout std_logic;
- B2B_B2_L8_P => tb_b2b_b2_l8_p, -- : inout std_logic;
- B2B_B2_L11_P => tb_b2b_b2_l11_p, -- : inout std_logic;
- B2B_B2_L11_N => tb_b2b_b2_l11_n, -- : inout std_logic;
- B2B_B2_L6_P => tb_b2b_b2_l6_p, -- : inout std_logic;
- B2B_B2_L6_N => tb_b2b_b2_l6_n, -- : inout std_logic;
- B2B_B2_L5_P => tb_b2b_b2_l5_p, -- : inout std_logic;
- B2B_B2_L5_N => tb_b2b_b2_l5_n, -- : inout std_logic;
- B2B_B2_L9_N => tb_b2b_b2_l9_n, -- : inout std_logic;
- B2B_B2_L9_P => tb_b2b_b2_l9_p, -- : inout std_logic;
- B2B_B2_L4_N => tb_b2b_b2_l4_n, -- : inout std_logic;
- B2B_B2_L4_P => tb_b2b_b2_l4_p, -- : inout std_logic;
- B2B_B2_L29_N => tb_b2b_b2_l29_n, -- : inout std_logic; -- single ended
- B2B_B2_L10_N => tb_b2b_b2_l10_n, -- : inout std_logic;
- B2B_B2_L10_P => tb_b2b_b2_l10_p, -- : inout std_logic;
- B2B_B2_L2_N => tb_b2b_b2_l2_n, -- : inout std_logic;
- B2B_B2_L2_P => tb_b2b_b2_l2_p, -- : inout std_logic;
- --
- -- B2B J2 user IO
- B2B_B3_L60_N => tb_b2b_b3_l60_n, -- : inout std_logic;
- B2B_B3_L60_P => tb_b2b_b3_l60_p, -- : inout std_logic;
- B2B_B3_L9_N => tb_b2b_b3_l9_n, -- : inout std_logic;
- B2B_B3_L9_P => tb_b2b_b3_l9_p, -- : inout std_logic;
- B2B_B0_L3_P => tb_b2b_b0_l3_p, -- : inout std_logic;
- B2B_B0_L3_N => tb_b2b_b0_l3_n, -- : inout std_logic;
- B2B_B3_L59_P => tb_b2b_b3_l59_p, -- : inout std_logic;
- B2B_B3_L59_N => tb_b2b_b3_l59_n, -- : inout std_logic;
- B2B_B0_L32_P => tb_b2b_b0_l32_p, -- : inout std_logic;
- B2B_B0_L32_N => tb_b2b_b0_l32_n, -- : inout std_logic;
- B2B_B0_L7_N => tb_b2b_b0_l7_n, -- : inout std_logic;
- B2B_B0_L7_P => tb_b2b_b0_l7_p, -- : inout std_logic;
- B2B_B0_L33_N => tb_b2b_b0_l33_n, -- : inout std_logic;
- B2B_B0_L33_P => tb_b2b_b0_l33_p, -- : inout std_logic;
- B2B_B0_L36_P => tb_b2b_b0_l36_p, -- : inout std_logic;
- B2B_B0_L36_N => tb_b2b_b0_l36_n, -- : inout std_logic;
- B2B_B0_L49_P => tb_b2b_b0_l49_p, -- : inout std_logic;
- B2B_B0_L49_N => tb_b2b_b0_l49_n, -- : inout std_logic;
- B2B_B0_L62_P => tb_b2b_b0_l62_p, -- : inout std_logic;
- B2B_B0_L62_N => tb_b2b_b0_l62_n, -- : inout std_logic;
- B2B_B0_L66_P => tb_b2b_b0_l66_p, -- : inout std_logic;
- B2B_B0_L66_N => tb_b2b_b0_l66_n, -- : inout std_logic;
- B2B_B1_L10_P => tb_b2b_b1_l10_p, -- : inout std_logic;
- B2B_B1_L10_N => tb_b2b_b1_l10_n, -- : inout std_logic;
- B2B_B1_L9_P => tb_b2b_b1_l9_p, -- : inout std_logic;
- B2B_B1_L9_N => tb_b2b_b1_l9_n, -- : inout std_logic;
- B2B_B1_L21_N => tb_b2b_b1_l21_n, -- : inout std_logic;
- B2B_B1_L21_P => tb_b2b_b1_l21_p, -- : inout std_logic;
- B2B_B1_L61_P => tb_b2b_b1_l61_p, -- : inout std_logic;
- B2B_B1_L61_N => tb_b2b_b1_l61_n, -- : inout std_logic;
- --B2B_B0_L1 => -- : inout std_logic; -- used as reset_n
- B2B_B0_L2_P => tb_b2b_b0_l2_p, -- : inout std_logic;
- B2B_B0_L2_N => tb_b2b_b0_l2_n, -- : inout std_logic;
- B2B_B0_L4_N => tb_b2b_b0_l4_n, -- : inout std_logic;
- B2B_B0_L4_P => tb_b2b_b0_l4_p, -- : inout std_logic;
- B2B_B0_L5_N => tb_b2b_b0_l5_n, -- : inout std_logic;
- B2B_B0_L5_P => tb_b2b_b0_l5_p, -- : inout std_logic;
- B2B_B0_L6_N => tb_b2b_b0_l6_n, -- : inout std_logic;
- B2B_B0_L6_P => tb_b2b_b0_l6_p, -- : inout std_logic;
- B2B_B0_L8_N => tb_b2b_b0_l8_n, -- : inout std_logic;
- B2B_B0_L8_P => tb_b2b_b0_l8_p, -- : inout std_logic;
- B2B_B0_L34_N => tb_b2b_b0_l34_n, -- : inout std_logic;
- B2B_B0_L34_P => tb_b2b_b0_l34_p, -- : inout std_logic;
- B2B_B0_L35_N => tb_b2b_b0_l35_n, -- : inout std_logic;
- B2B_B0_L35_P => tb_b2b_b0_l35_p, -- : inout std_logic;
- B2B_B0_L37_N => tb_b2b_b0_l37_n, -- : inout std_logic;
- B2B_B0_L37_P => tb_b2b_b0_l37_p, -- : inout std_logic;
- B2B_B0_L38_N => tb_b2b_b0_l38_n, -- : inout std_logic;
- B2B_B0_L38_P => tb_b2b_b0_l38_p, -- : inout std_logic;
- B2B_B0_L50_N => tb_b2b_b0_l50_n, -- : inout std_logic;
- B2B_B0_L50_P => tb_b2b_b0_l50_p, -- : inout std_logic;
- B2B_B0_L51_N => tb_b2b_b0_l51_n, -- : inout std_logic;
- B2B_B0_L51_P => tb_b2b_b0_l51_p, -- : inout std_logic;
- B2B_B0_L63_N => tb_b2b_b0_l63_n, -- : inout std_logic;
- B2B_B0_L63_P => tb_b2b_b0_l63_p, -- : inout std_logic;
- B2B_B0_L64_N => tb_b2b_b0_l64_n, -- : inout std_logic;
- B2B_B0_L64_P => tb_b2b_b0_l64_p, -- : inout std_logic;
- B2B_B0_L65_N => tb_b2b_b0_l65_n, -- : inout std_logic;
- B2B_B0_L65_P => tb_b2b_b0_l65_p, -- : inout std_logic;
- B2B_B1_L20_P => tb_b2b_b1_l20_p, -- : inout std_logic;
- B2B_B1_L20_N => tb_b2b_b1_l20_n, -- : inout std_logic;
- B2B_B1_L19_P => tb_b2b_b1_l19_p, -- : inout std_logic;
- B2B_B1_L19_N => tb_b2b_b1_l19_n, -- : inout std_logic;
- B2B_B1_L59 => tb_b2b_b1_l59, -- : inout std_logic;
- --
- -- misc
- USER_LED_N => tb_user_led_n, -- : out std_logic;
- AV => tb_av, -- : in std_logic_vector(3 downto 0);
- BR => tb_br -- : in std_logic_vector(3 downto 0)
- );
-
- main: process
- begin
- wait until rising_edge( tb_simulation_break);
- simulation_run <= false;
- wait; -- forever
- end process;
-
-end architecture testbench;
-
diff --git a/mig_test/simulation/Makefile b/mig_test/simulation/Makefile
deleted file mode 100644
index b1a0b89..0000000
--- a/mig_test/simulation/Makefile
+++ /dev/null
@@ -1,67 +0,0 @@
-#
-# $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/beam_position_monitor/trunk/hardware/board_prototyp1/simulation/Makefile $
-# $Date$
-# $Author$
-# $Revision$
-#
-
-library = work
-top = top_tb
-
-software_dir = ../software
-
-
-# http://sourceforge.net/projects/vmk/
-VMK = vmk
-
-# generate list of used libs
-library_list = $(shell cut --field 1 --delimiter=" " --only-delimited ../vhdl_files.txt | grep --invert "\#" | sort --unique)
-#library_list += $(shell cut --field 1 --delimiter=" " --only-delimited ../verilog_files.txt | grep --invert "\#" | sort --unique)
-
-# list of verilog files
-#vlog_list = $(shell cut --field 3 --delimiter=" " --only-delimited ../verilog_files.txt | grep --invert "\#" | sort --unique)
-
-
-all: compile
-
-software:
- test ! -d $(software_dir) || make --directory $(software_dir) | ccze -A
-
-hw_timestamp:
- test ! -f ../rtl/Makefile || make --directory ../rtl
-
-compile: hw_timestamp Makefile.msim
- @# compile DDR3 memory model stuff
- #vlog -work nanya +define+x16 +define+sg15f +incdir++../rtl_tb $(vlog_list)
- @# normal vhdl compile
- export ANAFLAGS="-quiet -2008"; \
- make -f Makefile.msim | ccze -A
- @echo "Start the simulation with \"make simulate\" now."
-
-
-simulate:
- #mkdir -p data
- export top=$(top); \
- vsim -quiet -novopt -gui $(library).$(top) -do run.do -l transcript.log
-
-
-clean:
- @# modelsim stuff
- rm -f transcript.log
- rm -f bus_trace.txt
- rm -f *.wlf
- rm -f wlf*
- @# compile stuff
- -make -f Makefile.msim clean
- rm -rf $(library_list)
- rm -f Makefile.msim
- rm -f .stamp
-
-
-# generate Makefile.msim with vmk
-Makefile.msim: software ../vhdl_files.txt $(library_list)
- $(VMK) -t modelsim -O -w $(library) -F ../vhdl_files.txt
-
-$(library_list):
- vlib $@
-
diff --git a/mig_test/simulation/run.do b/mig_test/simulation/run.do
deleted file mode 100644
index bba55ac..0000000
--- a/mig_test/simulation/run.do
+++ /dev/null
@@ -1,65 +0,0 @@
-
-#
-# helper functions
-#
-
-# restart + run
-proc r {} {
- restart -f
- set sim_start [clock seconds]
-
- run -all
-
- puts "# simulation run time: [clock format [expr [clock seconds] - $sim_start] -gmt 1 -format %H:%M:%S] "
-}
-
-
-# restart with clear
-proc rc {} {
- .main clear
- r
-}
-
-# print varables
-proc my_debug {} {
- global env
- foreach key [array names env] {
- puts "$key=$env($key)"
- }
-}
-
-
-# fast exit
-proc e {} {
- exit -force
-}
-
-# fast exit
-proc x {} {
- exit -force
-}
-
-
-# get env variables
-global env
-quietly set top $env(top)
-
-
-if {[file exists wave.do]} {
- do wave.do
-} else {
- if {[file exists wave_$top.do]} {
- do wave_$top.do
- } else {
- puts "INFO: wave file (wave_$top.do) not found"
- }
- puts "INFO: no wave file (wave.do) found"
-}
-
-
-
-set sim_start [clock seconds]
-
-run -all
-
-puts "# simulation run time: [clock format [expr [clock seconds] - $sim_start] -gmt 1 -format %H:%M:%S] "
diff --git a/mig_test/simulation/wave.do b/mig_test/simulation/wave.do
deleted file mode 100644
index 607e5f3..0000000
--- a/mig_test/simulation/wave.do
+++ /dev/null
@@ -1,27 +0,0 @@
-onerror {resume}
-quietly WaveActivateNextPane {} 0
-add wave -noupdate /top_tb/simulation_run
-add wave -noupdate /top_tb/tb_clk
-add wave -noupdate /top_tb/tb_user_led_n
-add wave -noupdate -expand -group {carrier board LEDs} /top_tb/tb_b2b_b3_l59_n
-add wave -noupdate -expand -group {carrier board LEDs} /top_tb/tb_b2b_b3_l59_p
-add wave -noupdate -expand -group {carrier board LEDs} /top_tb/tb_b2b_b3_l9_p
-add wave -noupdate -expand -group {carrier board LEDs} /top_tb/tb_b2b_b3_l9_n
-TreeUpdate [SetDefaultTree]
-WaveRestoreCursors {{Cursor 1} {83164314 ps} 0}
-quietly wave cursor active 1
-configure wave -namecolwidth 150
-configure wave -valuecolwidth 100
-configure wave -justifyvalue left
-configure wave -signalnamewidth 1
-configure wave -snapdistance 10
-configure wave -datasetprefix 0
-configure wave -rowmargin 4
-configure wave -childrowmargin 2
-configure wave -gridoffset 0
-configure wave -gridperiod 1923
-configure wave -griddelta 32
-configure wave -timeline 1
-configure wave -timelineunits ns
-update
-WaveRestoreZoom {0 ps} {901530 ns}
diff --git a/mig_test/software/Makefile b/mig_test/software/Makefile
deleted file mode 100644
index 1246803..0000000
--- a/mig_test/software/Makefile
+++ /dev/null
@@ -1,89 +0,0 @@
-#
-# $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/Makefile $
-# $Date$
-# $Author$
-# $Revision$
-#
-
-COMPILER_OPTIONS=-ffunction-sections -fdata-sections -Iinclude
-OBJCOPY_OPTIONS=--strip-debug --discard-locals
-
-ZPU_SUPPORT_DIR=../../zpu/support
-ZPU_ROM_GEN=$(ZPU_SUPPORT_DIR)/zpuromgen
-AHB_ROM_GEN=../../gaisler/support/ahbrom
-
-
-SVNPATH = ..
-SVNREV = $(shell svnversion -n $(SVNPATH))
-
-all: software
-
-help:
- @echo "software - build main software"
- @echo
- @echo "clean - clean up"
-
-
-startup = lib/crt0.S
-objs = lib/crt0.o
-lib_src = lib/premain.c lib/divmod.c lib/udivmodsi4.c
-#ldflags = -nostartfiles -nostdlib -nodefaultlibs $(objs) -Wl,--relax -Wl,--gc-sections -Wl,-lhal -Wl,-Llibhal
-ldflags = -nostartfiles $(objs) -Wl,--relax,--gc-sections,-lhal,-Llibhal
-
-
-zpu_rom_vhdl = ../rtl/dualport_ram.vhd
-ahb_rom_vhdl = ../rtl/ahbrom.vhd
-c_files += main.c
-c_files += timestamp.c
-c_files += monitor.c
-c_files += schedule.c
-c_files += ambainfo.c
-c_files += monitor_functions.c
-c_files += $(lib_src)
-h_files = *.h include/peripherie.h
-
-
-software: $(zpu_rom_vhdl) $(ahb_rom_vhdl)
-
-
-main.bin: $(c_files) $(h_files) $(objs)
- make --directory libhal
- @# normal compile command (emulate instructions)
- zpu-elf-gcc $(COMPILER_OPTIONS) -O3 -phi $(c_files) $(ldflags) -o main.elf
-
- zpu-elf-size main.elf
- print_mem_zpu.sh main.elf
- zpu-elf-objdump -D -S main.elf > main.lst
- zpu-elf-objcopy $(OBJCOPY_OPTIONS) -O binary main.elf main.bin
-
-$(zpu_rom_vhdl): main.bin $(ZPU_ROM_GEN)
- # concat parts
- cat > $(zpu_rom_vhdl) $(ZPU_SUPPORT_DIR)/dualport_ram.vhd_header
- $(ZPU_ROM_GEN) main.bin >> $(zpu_rom_vhdl)
- cat >> $(zpu_rom_vhdl) $(ZPU_SUPPORT_DIR)/dualport_ram.vhd_footer
-
-$(ahb_rom_vhdl): main.bin $(AHB_ROM_GEN)
- $(AHB_ROM_GEN) main.bin $(ahb_rom_vhdl)
-
-
-$(startup:.S=.o): $(startup)
- zpu-elf-gcc -c $< -o $@
-
-clean:
- rm -f *.bin
- rm -f *.elf
- rm -f *.lst
- rm -f *.o
- rm -f lib/*.o
-
-
-timestamp: timestamp.c
-timestamp.c:
- @echo "updating $@ ($(SVNREV))"
- @rm -f $@
- @echo "const char* sw_svn_revision = \"$(SVNREV)\"; " >> $@
-
-
-# disable implicit rule for c files
-.SUFFIXES:
-%.c: %.w %.ch
diff --git a/mig_test/software/ambainfo.c b/mig_test/software/ambainfo.c
deleted file mode 100644
index 83813b0..0000000
--- a/mig_test/software/ambainfo.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/ambainfo.c $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-#include <types.h>
-
-
-/*
- print some spaces to make output alignment columnwise
-*/
-void fill(uint8_t length, uint8_t fillupto)
-{
- while (length < fillupto)
- {
- putchar(' ');
- length++;
- }
-}
-
-
-
-////////////////////////////////////////////////////////////
-// print vendor
-void print_vendor_device( uint8_t vendor, uint8_t device)
-{
- switch( vendor)
- {
- case 0x01: putstr("gaisler ");
- switch( device)
- {
- case 0x06: putstr("AHB/APB Bridge"); break;
- case 0x0c: putstr("Generic UART"); break;
- case 0x0f: putstr("Dual-port AHB SRAM module"); break;
- case 0x11: putstr("Modular Timer Unit"); break;
- case 0x1a: putstr("General Purpose I/O port"); break;
- case 0x1d: putstr("GR 10/100 Mbit Ethernet MAC"); break;
- case 0x28: putstr("AMBA Wrapper for OC I2C-master");break;
- case 0x45: putstr("SPI Memory Controller"); break;
- case 0x61: putstr("VGA controller"); break;
- case 0x87: putstr("General Purpose Register"); break;
- default : putstr("unknown device"); break;
- }
- break;
- case 0x04: putstr("ESA ");
- switch( device)
- {
- case 0x0f: putstr("Leon2 Memory Controller"); break;
- default : putstr("unknown device"); break;
- }
- break;
- case 0x55: putstr("HZDR ");
- switch( device)
- {
- case 0x01: putstr("ZPU AHB Wrapper"); break;
- case 0x02: putstr("ZPU Memory wrapper"); break;
- case 0x03: putstr("DCM phase shift control"); break;
- case 0x04: putstr("debug console"); break;
- case 0x05: putstr("trigger generator"); break;
- case 0x06: putstr("beam position monitor"); break;
- case 0x07: putstr("debug buffer control"); break;
- case 0x08: putstr("EA-DOGS display driver"); break;
- case 0x09: putstr("debug tracer memory"); break;
- case 0x0a: putstr("differential current monitor"); break;
- default : putstr("unknown device"); break;
- }
- break;
- default : putstr("vendor? "); break;
- }
-}
-
-////////////////////////////////////////////////////////////
-// apb info
-void apb_info( uint32_t* addr, uint8_t verbose)
-{
- // identification register
- uint16_t vendor;
- uint16_t device;
- uint16_t version;
- uint16_t irq;
- uint32_t dev_addr;
-
- uint32_t* config;
- uint32_t* idreg_addr;
- uint32_t idreg_word;
- uint32_t* bar_addr;
- uint32_t bar_word;
-
- uint32_t apb_addr;
- uint32_t apb_unit;
-
- config = addr;
- apb_addr = (*config & 0xfff00000); // get apb address
-
- // we can have up to 512 slaves, but we scan only 16
- // to avoid double scans at the moment
- for (apb_unit = 0; apb_unit < 16; apb_unit++)
- {
- idreg_addr = (uint32_t*) (apb_addr | 0x000ff000 | (apb_unit << 3));
- idreg_word = *idreg_addr;
- bar_addr = idreg_addr + 1;
- bar_word = *bar_addr;
-
- dev_addr = apb_addr | ((bar_word & 0xfff00000) >> 12);
- vendor = (idreg_word >> 24) & 0xff;
- device = (idreg_word >> 12) & 0xfff;
- version = (idreg_word >> 5) & 0xf;
- irq = (idreg_word >> 0) & 0x1f;
-
- if (vendor > 0)
- {
- putstr(" apbslv");
- fill( putint( apb_unit), 4);
-
- // print idreg word
- putstr("vend 0x"); fill( puthex( 8, vendor), 4);
- putstr("dev 0x"); fill( puthex(16, device), 6);
- putstr("ver "); fill( putint( version), 4);
- putstr("irq "); fill( putint( irq), 4);
- putstr("addr 0x"); fill( puthex(32, dev_addr), 10);
- if (verbose)
- print_vendor_device( vendor, device);
- putchar('\n');
- }
- }
-}
-
-void ahb_info( uint8_t verbose)
-{
- uint16_t vendor;
- uint16_t device;
- uint16_t version;
- uint16_t irq;
-
- uint32_t address;
- uint16_t cp;
- uint16_t mask;
- uint16_t type;
-
- uint32_t config_word;
- uint32_t bar;
- uint32_t ahb_unit;
-
- uint8_t i;
-
- uint32_t* config_addr = (uint32_t*) 0xfffff000;
- uint32_t* bar_addr = (uint32_t*) 0xfffff010;
-
-
- // check for 64 master and 64 slaves
- for (ahb_unit = 0; ahb_unit < 128; ahb_unit++)
- {
- config_addr = (uint32_t*) (0xfffff000 + (ahb_unit << 5));
- bar_addr = (uint32_t*) config_addr + 4;
-
- config_word = *config_addr;
-
- vendor = (config_word >> 24) & 0xff;
- device = (config_word >> 12) & 0xfff;
- version = (config_word >> 5) & 0xf;
- irq = (config_word >> 0) & 0x1f;
-
- if (vendor > 0)
- {
- if (ahb_unit < 64)
- {
- putstr("ahbmst");
- fill( putint( ahb_unit), 6);
- }
- else
- {
- putstr("ahbslv");
- fill( putint( ahb_unit - 64), 6);
- }
-
- // print config word
- putstr("vend 0x"); fill( puthex( 8, vendor), 4);
- putstr("dev 0x"); fill( puthex(16, device), 6);
- putstr("ver "); fill( putint( version), 4);
- putstr("irq "); fill( putint( irq), 4);
- putstr("addr 0x"); fill( puthex(32, *bar_addr & 0xfff00000), 10);
- if (verbose)
- print_vendor_device( vendor, device);
- putchar('\n');
-
- if ((vendor == 1) && (device == 6))
- apb_info( bar_addr, verbose);
-
- /*
- // check all 4 bank address registers
- for (i = 0; i < 4; i++)
- {
- bar = *bar_addr;
-
- address = bar & 0xfff0000;
- cp = (bar >> 16) & 0xf;
- mask = (bar >> 4) & 0xfff;
- type = (bar >> 0) & 0xf;
-
- // print bank address register
- putstr("address 0x"); fill( puthex( 32, address), 6);
- putstr("c/p 0x"); fill( puthex( 8, cp), 6);
- putstr("mask 0x"); fill( puthex( 16, mask), 6);
- putstr("type 0x"); fill( puthex( 8, type), 6);
- putchar('\n');
-
- bar_addr++;
- } // for i
- */
-
- } // vendor > 0
- } // for ahb_unit
-}
-
diff --git a/mig_test/software/ambainfo.h b/mig_test/software/ambainfo.h
deleted file mode 100644
index e9828f1..0000000
--- a/mig_test/software/ambainfo.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/ambainfo.h $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-
-#ifndef AMBAINFO_H
-#define AMBAINFO_H
-
-void print_vendor_device( uint8_t vendor, uint8_t device);
-void apb_info( uint32_t* addr, uint8_t verbose);
-void ahb_info( uint8_t verbose);
-
-#endif // AMBAINFO_H
diff --git a/mig_test/software/include/common.h b/mig_test/software/include/common.h
deleted file mode 100644
index 9028a90..0000000
--- a/mig_test/software/include/common.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/include/common.h $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-#ifndef COMMON_H
-#define COMMON_H
-
-////////////////////////////////////////
-// specific stuff
-
-char putchar ( char c);
-void putstr ( const char *s);
-void putbin ( unsigned char dataType, unsigned long data);
-unsigned char puthex ( unsigned char dataType, unsigned long data);
-unsigned char itoa ( int z, char* Buffer );
-unsigned char putint ( unsigned long data);
-unsigned char putuint ( long data);
-void putpfloat( unsigned long data);
-
-#endif // COMMON_H
diff --git a/mig_test/software/include/lcd-routines.h b/mig_test/software/include/lcd-routines.h
deleted file mode 100644
index e3516cf..0000000
--- a/mig_test/software/include/lcd-routines.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/include/lcd-routines.h $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-
-// Ansteuerung eines HD44780 kompatiblen LCD im 4-Bit-Interfacemodus
-// http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung
-//
-
-#ifndef LCD_ROUTINES_H
-#define LCD_ROUTINES_H
-
-#include "peripherie.h"
-
-////////////////////////////////////////////////////////////////////////////////
-// Hier die verwendete Taktfrequenz in Hz eintragen, wichtig!
-
-#ifndef F_CPU
-#define F_CPU 50000000
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-// Pinbelegung für das LCD, an verwendete Pins anpassen
-// Alle LCD Pins müssen an einem Port angeschlossen sein und die 4
-// Datenleitungen müssen auf aufeinanderfolgenden Pins liegen
-
-// LCD DB4-DB7 <--> PORTD Bit PD0-PD3
-#define LCD_PORT (gpio0->ioout)
-#define LCD_DDR (gpio0->iodir)
-#define LCD_DB (8)
-
-// LCD RS <--> PORTD Bit PD4 (RS: 0=Data, 1=Command)
-#define LCD_RS (14)
-
-// LCD EN <--> PORTD Bit PD5 (EN: 1-Impuls für Daten)
-#define LCD_EN (13)
-
-#define LCD_RW (15)
-
-////////////////////////////////////////////////////////////////////////////////
-// LCD Ausführungszeiten (MS=Millisekunden, US=Mikrosekunden)
-
-#define LCD_BOOTUP_MS 15
-#define LCD_ENABLE_US 1
-#define LCD_WRITEDATA_US 46
-#define LCD_COMMAND_US 42
-
-#define LCD_SOFT_RESET_MS1 5
-#define LCD_SOFT_RESET_MS2 1
-#define LCD_SOFT_RESET_MS3 1
-#define LCD_SET_4BITMODE_MS 5
-
-#define LCD_CLEAR_DISPLAY_MS 2
-#define LCD_CURSOR_HOME_MS 2
-
-////////////////////////////////////////////////////////////////////////////////
-// Zeilendefinitionen des verwendeten LCD
-// Die Einträge hier sollten für ein LCD mit einer Zeilenlänge von 16 Zeichen passen
-// Bei anderen Zeilenlängen müssen diese Einträge angepasst werden
-
-#define LCD_DDADR_LINE1 0x00
-#define LCD_DDADR_LINE2 0x40
-#define LCD_DDADR_LINE3 0x10
-#define LCD_DDADR_LINE4 0x50
-
-////////////////////////////////////////////////////////////////////////////////
-// Initialisierung: muss ganz am Anfang des Programms aufgerufen werden.
-void lcd_init( void );
-
-////////////////////////////////////////////////////////////////////////////////
-// LCD löschen
-void lcd_clear( void );
-
-////////////////////////////////////////////////////////////////////////////////
-// Cursor in die 1. Zeile, 0-te Spalte
-void lcd_home( void );
-
-////////////////////////////////////////////////////////////////////////////////
-// Cursor an eine beliebige Position
-void lcd_setcursor( uint8_t spalte, uint8_t zeile );
-
-////////////////////////////////////////////////////////////////////////////////
-// Ausgabe eines einzelnen Zeichens an der aktuellen Cursorposition
-void lcd_data( uint8_t data );
-
-////////////////////////////////////////////////////////////////////////////////
-// Ausgabe eines Strings an der aktuellen Cursorposition
-void lcd_string( const char *data );
-
-////////////////////////////////////////////////////////////////////////////////
-// Definition eines benutzerdefinierten Sonderzeichens.
-// data muss auf ein Array[5] mit den Spaltencodes des zu definierenden Zeichens
-// zeigen
-void lcd_generatechar( uint8_t code, const uint8_t *data );
-
-////////////////////////////////////////////////////////////////////////////////
-// Ausgabe eines Kommandos an das LCD.
-void lcd_command( uint8_t data );
-
-
-////////////////////////////////////////////////////////////////////////////////
-// LCD Befehle und Argumente.
-// Zur Verwendung in lcd_command
-
-// Clear Display -------------- 0b00000001
-#define LCD_CLEAR_DISPLAY 0x01
-
-// Cursor Home ---------------- 0b0000001x
-#define LCD_CURSOR_HOME 0x02
-
-// Set Entry Mode ------------- 0b000001xx
-#define LCD_SET_ENTRY 0x04
-
-#define LCD_ENTRY_DECREASE 0x00
-#define LCD_ENTRY_INCREASE 0x02
-#define LCD_ENTRY_NOSHIFT 0x00
-#define LCD_ENTRY_SHIFT 0x01
-
-// Set Display ---------------- 0b00001xxx
-#define LCD_SET_DISPLAY 0x08
-
-#define LCD_DISPLAY_OFF 0x00
-#define LCD_DISPLAY_ON 0x04
-#define LCD_CURSOR_OFF 0x00
-#define LCD_CURSOR_ON 0x02
-#define LCD_BLINKING_OFF 0x00
-#define LCD_BLINKING_ON 0x01
-
-// Set Shift ------------------ 0b0001xxxx
-#define LCD_SET_SHIFT 0x10
-
-#define LCD_CURSOR_MOVE 0x00
-#define LCD_DISPLAY_SHIFT 0x08
-#define LCD_SHIFT_LEFT 0x00
-#define LCD_SHIFT_RIGHT 0x04
-
-// Set Function --------------- 0b001xxxxx
-#define LCD_SET_FUNCTION 0x20
-
-#define LCD_FUNCTION_4BIT 0x00
-#define LCD_FUNCTION_8BIT 0x10
-#define LCD_FUNCTION_1LINE 0x00
-#define LCD_FUNCTION_2LINE 0x08
-#define LCD_FUNCTION_5X7 0x00
-#define LCD_FUNCTION_5X10 0x04
-
-#define LCD_SOFT_RESET 0x30
-
-// Set CG RAM Address --------- 0b01xxxxxx (Character Generator RAM)
-#define LCD_SET_CGADR 0x40
-
-#define LCD_GC_CHAR0 0
-#define LCD_GC_CHAR1 1
-#define LCD_GC_CHAR2 2
-#define LCD_GC_CHAR3 3
-#define LCD_GC_CHAR4 4
-#define LCD_GC_CHAR5 5
-#define LCD_GC_CHAR6 6
-#define LCD_GC_CHAR7 7
-
-// Set DD RAM Address --------- 0b1xxxxxxx (Display Data RAM)
-#define LCD_SET_DDADR 0x80
-
-#endif
diff --git a/mig_test/software/include/peripherie.h b/mig_test/software/include/peripherie.h
deleted file mode 100644
index 9734d4c..0000000
--- a/mig_test/software/include/peripherie.h
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/include/peripherie.h $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-
-#ifndef PERIPHERIE_H
-#define PERIPHERIE_H
-
-#include <types.h>
-
-////////////////////
-// hardware types
-
-// gpio
-typedef struct {
- volatile uint32_t iodata; // 000
- volatile uint32_t ioout; // 001
- volatile uint32_t iodir; // 010, for bidir port bits
- volatile uint32_t irqmask; // 011
- volatile uint32_t irqpol; // 100
- volatile uint32_t irqedge; // 101
- volatile uint32_t bypass; // 110
-} grgpio_t;
-
-
-// uart
-#define UART_STATUS_DATA_READY (1<< 0)
-#define UART_STATUS_TX_SHREG_EMPTY (1<< 1)
-#define UART_STATUS_TX_REG_EMPTY (1<< 2)
-#define UART_STATUS_BREAK_RECEIVED (1<< 3)
-#define UART_STATUS_OVERRUN (1<< 4)
-#define UART_STATUS_PARITY_ERROR (1<< 5)
-#define UART_STATUS_FRAMING_ERROR (1<< 6)
-#define UART_STATUS_TX_FIFO_HALF_FULL (1<< 7)
-#define UART_STATUS_RX_FIFO_HALF_FULL (1<< 8)
-#define UART_STATUS_TX_FIFO_FULL (1<< 9)
-#define UART_STATUS_RX_FIFO_FULL (1<<10)
-
-#define UART_CONTROL_RX_ENABLE (1<< 0)
-#define UART_CONTROL_TX_ENABLE (1<< 1)
-#define UART_CONTROL_RX_INT_ENABLE (1<< 2)
-#define UART_CONTROL_TX_INT_ENABLE (1<< 3)
-#define UART_CONTROL_PARITY_SELECT (1<< 4)
-#define UART_CONTROL_PARITY_ENABLE (1<< 5)
-#define UART_CONTROL_FLOW_CONTROL (1<< 6)
-#define UART_CONTROL_LOOP_BACK (1<< 7)
-#define UART_CONTROL_EXTERNAL_CLOCK (1<< 8)
-#define UART_CONTROL_TX_FIFO_INT_ENABLE (1<< 9)
-#define UART_CONTROL_RX_FIFO_INT_ENABLE (1<<10)
-#define UART_CONTROL_FIFO_DEBUG_MODE (1<<11)
-#define UART_CONTROL_BREAK_INT_ENABLE (1<<12)
-#define UART_CONTROL_DELAYED_INT_ENABLE (1<<13)
-#define UART_CONTROL_TX_REG_EMPTY_INT_ENABLE (1<<14)
-#define UART_CONTROL_FIFO_AVAILIBLE (1<<31)
-
-typedef struct {
- volatile uint32_t data; // 000000
- volatile uint32_t status; // 000001
- volatile uint32_t ctrl; // 000010
- volatile uint32_t scaler; // 000011
- volatile uint32_t fifo_debug; // 000100
-} apbuart_t;
-
-
-// timer (grip.pdf p. 279)
-#define TIMER_ENABLE (1<<0)
-#define TIMER_RESTART (1<<1)
-#define TIMER_LOAD (1<<2)
-#define TIMER_INT_ENABLE (1<<3)
-#define TIMER_INT_PENDING (1<<4)
-#define TIMER_CHAIN (1<<5)
-#define TIMER_DEBUG_HALT (1<<6)
-typedef struct {
- volatile uint32_t value;
- volatile uint32_t reload;
- volatile uint32_t ctrl;
- volatile uint32_t unused;
-} gptimer_element_t;
-
-#define TIMER_CONFIG_DISABLE_FREEZE (1<<8)
-typedef struct {
- volatile uint32_t scaler; // 00000
- volatile uint32_t scaler_reload; // 00001
- volatile uint32_t config; // 00010 ntimers, pirq
- volatile uint32_t unused; // 00011
- gptimer_element_t e[8];
-} gptimer_t;
-
-#define CLOCKS_PER_SECOND (1000)
-void usleep( uint32_t nsec);
-void msleep( uint32_t msec);
-void sleep( uint32_t sec);
-void timer_init( void);
-
-
-// i2c
-// control register
-#define I2C_CORE_ENABLE (1<<7)
-#define I2C_INT_ENABLE (1<<6)
-// command register
-#define I2C_START (1<<7)
-#define I2C_STOP (1<<6)
-#define I2C_READ (1<<5)
-#define I2C_WRITE (1<<4)
-#define I2C_ACK (1<<3)
-#define I2C_INT_ACK (1<<0)
-// status register
-#define I2C_RX_ACK (1<<7)
-#define I2C_BUSY (1<<6)
-#define I2C_ARB_LOST (1<<5)
-#define I2C_TIP (1<<1)
-#define I2C_INT (1<<0)
-
-typedef struct {
- volatile uint32_t clock_prescaler; // prer 0x00
- volatile uint32_t control; // ctr 0x04
- volatile uint32_t data; // xr 0x08 write -> transmit, read -> receive
- volatile uint32_t command; // csr 0x0c write -> command, read -> status
-} i2cmst_t; // i2cmstregs
-
-
-// vga
-typedef struct {
- volatile uint32_t data;
- volatile uint32_t background_color;
- volatile uint32_t foreground_color;
-} apbvga_t;
-
-
-// ethernet
-#define ETHER_DESCRIPTOR_ENABLE (1<<11)
-#define ETHER_DESCRIPTOR_WRAP (1<<12)
-#define ETHER_DESCRIPTOR_INT_ENABLE (1<<13)
-#define ETHER_DESCRIPTOR_UNDERRUN_ERR (1<<14)
-#define ETHER_DESCRIPTOR_ATTEMEPT_LIMIT_ERR (1<<15)
-typedef struct {
- volatile uint32_t control;
- volatile uint32_t address;
-} greth_tx_descriptor_t;
-
-#define ETHER_CONTROL_TX_ENABLE (1<< 0)
-#define ETHER_CONTROL_RX_ENABLE (1<< 1)
-#define ETHER_CONTROL_TX_INT (1<< 2)
-#define ETHER_CONTROL_RX_INT (1<< 3)
-#define ETHER_CONTROL_FULL_DUPLEX (1<< 4)
-#define ETHER_CONTROL_PROMISCUOUS_MODE (1<< 5)
-#define ETHER_CONTROL_RESET (1<< 6)
-#define ETHER_CONTROL_SPEED (1<< 7)
-#define ETHER_CONTROL_EDCL_AVAILABLE (1<<31)
-
-#define ETHER_STATUS_RX_ERROR (1<< 0)
-#define ETHER_STATUS_TX_ERROR (1<< 1)
-#define ETHER_STATUS_RX_INT (1<< 2)
-#define ETHER_STATUS_TX_INT (1<< 3)
-#define ETHER_STATUS_RX_AHB_ERROR (1<< 4)
-#define ETHER_STATUS_TX_AHB_ERROR (1<< 5)
-#define ETHER_STATUS_RX_TOO_SMALL (1<< 6)
-#define ETHER_STATUS_INVALID_ADDRESS (1<< 7)
-
-#define ETHER_MDIO_WR (1<< 0)
-#define ETHER_MDIO_RD (1<< 1)
-#define ETHER_MDIO_LINKFAIL (1<< 2)
-#define ETHER_MDIO_BUSY (1<< 3)
-#define ETHER_MDIO_NOT_VALID (1<< 4)
-
-typedef struct {
- volatile uint32_t control; // 0x00
- volatile uint32_t status; // 0x04
- volatile uint32_t mac_msb; // 0x08
- volatile uint32_t mac_lsb; // 0x0C
- volatile uint32_t mdio_control; // 0x10
- volatile uint32_t tx_pointer; // 0x14
- volatile uint32_t rx_pointer; // 0x18
- volatile uint32_t edcl_ip; // 0x1C
- volatile uint32_t hash_msb; // 0x20
- volatile uint32_t hash_lsb; // 0x24
-} greth_t;
-
-
-struct udp_header_st {
- uint16_t source_port;
- uint16_t dest_port;
- uint16_t length;
- uint16_t checksum;
- uint8_t data[1500];//[data_length];
-} __attribute((packed));
-
-typedef struct udp_header_st udp_header_t;
-
-
-//uint32_t data_length = 64; // minimum size is 46 (w/o vlan tag) or 42 (with vlan tag)
-
-#define PROTOCOL_UDP (17)
-#define FLAG_DF (1<<14)
-#define FLAG_MF (1<<15)
-struct ip_header_st {
- uint8_t version; // +ihl (ip header length)
- uint8_t tos;
- uint16_t length;
- uint16_t identification;
- uint16_t fragment_offset; // +flags
- uint8_t ttl;
- uint8_t protocol_id; // udp = 17, tcp = 6
- uint16_t checksum;
- uint32_t source_ip;
- uint32_t dest_ip;
- udp_header_t udp_header;
-} __attribute((packed));
-
-typedef struct ip_header_st ip_header_t;
-
-#define ETHERTYPE_IPv4 (0x0800)
-#define ETHERTYPE_ARP (0x0806)
-struct mac_header_st {
- uint8_t dest_mac[6];
- uint8_t source_mac[6];
- uint16_t ethertype; // length or eg. 0x800 IPv4, 0x0806 ARP, 0x8892 Profinet, 0x88a4 etherCat
- ip_header_t ip_header;
-} __attribute((packed));
-typedef struct mac_header_st mac_header_t;
-
-
-// ddr control register set
-typedef struct {
- volatile uint32_t sdram_control;
- volatile uint32_t sdram_config;
- volatile uint32_t sdram_power_saving;
- volatile uint32_t reserved;
- volatile uint32_t status_read;
- volatile uint32_t phy_config_0;
- volatile uint32_t phy_config_1;
-} ddrspa_t;
-
-
-// dcm control
-typedef struct {
- volatile uint32_t psstatus;
- volatile int32_t psdec;
- volatile int32_t psinc;
- volatile int32_t psvalue;
-} dcm_ctrl_t;
-
-
-// debug console (for simulation)
-char debug_putchar( char c);
-
-// function pointer for putchar
-extern char (* stdout) ( char);
-
-
-// iqr
-typedef struct {
- volatile uint32_t irq_level; // 0x00
- volatile uint32_t irq_pending; // 0x04
- volatile uint32_t irq_force; // 0x08
- volatile uint32_t irq_clear; // 0x0c
- volatile uint32_t mp_status; // 0x10
- volatile uint32_t broadcast; // 0x14 (NCPU > 1)
- volatile uint32_t dummy[10]; // 0x18 - 0x3c
- volatile uint32_t irq_mask; // 0x40
- // open: interrupt force, extended interrupt acknowledge
-} irqmp_t;
-
-
-// mctrl
-typedef struct {
- volatile uint32_t mcfg1; // 0x00
- volatile uint32_t mcfg2; // 0x04
- volatile uint32_t mcfg3; // 0x08
- volatile uint32_t mcfg4; // 0x0c
-} mctrl_t;
-
-
-////////////////////
-// hardware units
-
-// ZPU frequency
-#define F_CPU (125000000)
-
-// set min prescaler to ntimers+1
-#define TIMER_PRESCALER (8)
-
-// scaler for uart
-#define UART_BAUD_RATE (115200)
-//#define UART_BAUD_RATE (9600)
-#define UART_SCALER (F_CPU/(8 * UART_BAUD_RATE))
-#define UART_FIFOSIZE (16)
-
-// scaler for i2c
-#define I2C_PRESCALER_100K (F_CPU/(5 * 100000)-1)
-#define I2C_PRESCALER_400K (F_CPU/(5 * 400000)-1)
-
-
-extern apbuart_t *uart0;
-extern gptimer_t *timer0;
-extern irqmp_t *irqmp0;
-extern apbvga_t *vga0;
-extern grgpio_t *gpio0;
-extern greth_t *ether0;
-extern mctrl_t *mctrl0;
-volatile extern uint32_t *debug_con0;
-volatile extern uint32_t *reset_reg;
-extern ddrspa_t *ddr0;
-
-extern i2cmst_t *i2c_dvi;
-extern i2cmst_t *i2c_fmc;
-
-//char *debug_con0 = (char *) 0x80000000;
-//uint32_t *reset_reg = (uint32_t *) 0x80000004;
-//apbuart_t *uart0 = (apbuart_t *) 0x80000100;
-//gptimer_t *timer0 = (gptimer_t *) 0x80000200;
-//grgpio_t *gpio0 = (grgpio_t *) 0x80000400;
-//apbvga_t *vga0 = (apbvga_t *) 0x80000600;
-//i2cmst_t *i2cmst0 = (i2cmst_t *) 0x80000700;
-
-//greth_t *ether0 = (greth_t *) 0x80000c00;
-//dcm_ctrl_t *dcm_ctrl0 = (dcm_ctrl_t *) 0x80000e00;
-//ddrspa_t *ddr0 = (ddrspa_t *) 0xfff00000;
-
-#endif // PERIPHERIE_H
diff --git a/mig_test/software/include/timer.h b/mig_test/software/include/timer.h
deleted file mode 100644
index fa4875f..0000000
--- a/mig_test/software/include/timer.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/include/timer.h $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-
-#include "peripherie.h"
-
-#ifndef TIMER_H
-#define TIMER_H
-
-
-////////////////////////////////////////
-// timer functions
-
-
-// wait for a given time in micro seconds
-void usleep(uint32_t usec);
-
-// wait for given time in milli seconds
-void msleep(uint32_t msec);
-
-
-// wait for given time in seconds
-void sleep(uint32_t sec);
-
-
-// deliver the milli seconds from timer 0.1
-uint32_t msecs( void);
-
-// deliver the seconds from timer 0.2
-uint32_t seconds( void);
-
-// deliver the time (in seconds and fraction) from timer
-uint32_t get_time( void);
-
-// just a loop
-void wait( uint32_t value);
-
-
-// initialisation for the timer
-void timer_init( void);
-
-#define TIMER_STOP timer0->e[1].ctrl &= ~TIMER_ENABLE;
-#define TIMER_RUN timer0->e[1].ctrl |= TIMER_ENABLE;
-
-#endif // TIMER_H
diff --git a/mig_test/software/include/types.h b/mig_test/software/include/types.h
deleted file mode 100644
index d8e6862..0000000
--- a/mig_test/software/include/types.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/include/types.h $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-
-#ifndef TYPES_H
-#define TYPES_H
-
-////////////////////
-// common types
-
-typedef signed char int8_t;
-typedef unsigned char uint8_t;
-
-typedef short int16_t;
-typedef unsigned short uint16_t;
-
-typedef long int32_t;
-typedef unsigned long uint32_t;
-
-typedef long long int64_t;
-typedef unsigned long long uint64_t;
-
-#define TRUE (1==1)
-#define FALSE (1==0)
-
-
-////////////////////////////////////////
-// common defines
-
-#define set_bit(mem, bv) ((mem) |= bv)
-#define clear_bit(mem, bv) ((mem) &= ~bv)
-#define toggle_bit(mem, bv) ((mem) ^= bv)
-#define bit_is_set(mem, bv) (mem & bv)
-#define bit_is_clear(mem, bv) (!(mem & bv))
-#define loop_until_bit_is_set(mem, bv) do {} while( bit_is_clear(mem, bv))
-#define loop_until_bit_is_clear(mem, bv) do {} while( bit_is_set(mem, bv))
-
-
-#endif // TYPES_H
diff --git a/mig_test/software/include/uart.h b/mig_test/software/include/uart.h
deleted file mode 100644
index ca040e4..0000000
--- a/mig_test/software/include/uart.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/include/uart.h $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-
-#ifndef UART_H
-#define UART_H
-
-
-////////////////////////////////////////
-// uart functions
-
-#define UART_HW_HANDSHAKE_ON (uart0-> ctrl |= UART_CONTROL_FLOW_CONTROL)
-#define UART_HW_HANDSHAKE_OFF (uart0-> ctrl &= ~UART_CONTROL_FLOW_CONTROL)
-
-void uart_init( void);
-unsigned int uart_check_receiver();
-char uart_getchar();
-void uart_putchar_raw( char c);
-char uart_putchar( char c);
-
-#endif // UART_H
diff --git a/mig_test/software/include/vga.h b/mig_test/software/include/vga.h
deleted file mode 100644
index f4d3914..0000000
--- a/mig_test/software/include/vga.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/include/vga.h $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-
-#include "peripherie.h"
-
-
-extern uint8_t vga_line;
-extern uint8_t vga_column;
-
-void vga_init( void);
-void vga_clear( void);
-void vga_putchar( char c);
-
diff --git a/mig_test/software/lib/crt0.S b/mig_test/software/lib/crt0.S
deleted file mode 100644
index 9c9e199..0000000
--- a/mig_test/software/lib/crt0.S
+++ /dev/null
@@ -1,973 +0,0 @@
-/* Startup code for ZPU
- Copyright (C) 2005 Free Software Foundation, Inc.
-
-This file is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2, or (at your option) any
-later version.
-
-In addition to the permissions in the GNU General Public License, the
-Free Software Foundation gives you unlimited permission to link the
-compiled version of this file with other programs, and to distribute
-those programs without any restriction coming from the use of this
-file. (The General Public License restrictions do apply in other
-respects; for example, they cover modification of the file, and
-distribution when not linked into another program.)
-
-This file is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
- .file "crt0.S"
-
-
-; cleaned BLa
-
-
-; .section ".fixed_vectors","ax"
-; KLUDGE!!! we remove the executable bit to avoid relaxation
- .section ".fixed_vectors","a"
-
-; DANGER!!!!
-; we need to align these code sections to 32 bytes, which
-; means we must not use any assembler instructions that are relaxed
-; at linker time
-; DANGER!!!!
-
- .macro fixedim value
- im \value
- .endm
-
- .macro jsr address
- im _memreg ; save R0
- load
- im _memreg+4 ; save R1
- load
- im _memreg+8 ; save R2
- load
- fixedim \address
- call
- im _memreg+8
- store ; restore R2
- im _memreg+4
- store ; restore R1
- im _memreg
- store ; restore R0
- .endm
-
-
- .macro jmp address
- fixedim \address
- poppc
- .endm
-
-
- .macro fast_neg
- not
- im 1
- add
- .endm
-
- .macro cimpl funcname
- ; save R0
- im _memreg
- load
-
- ; save R1
- im _memreg+4
- load
-
- ; save R2
- im _memreg+8
- load
-
- loadsp 20
- loadsp 20
-
- fixedim \funcname
- call
-
- ; destroy arguments on stack
- storesp 0
- storesp 0
-
- im _memreg
- load
-
- ; poke the result into the right slot
- storesp 24
-
- ; restore R2
- im _memreg+8
- store
-
- ; restore R1
- im _memreg+4
- store
-
- ; restore r0
- im _memreg
- store
-
-
- storesp 4
- poppc
- .endm
-
- .macro mult1bit
- ; create mask of lowest bit in A
- loadsp 8 ; A
- im 1
- and
- im -1
- add
- not
- loadsp 8 ; B
- and
- add ; accumulate in C
-
- ; shift B left 1 bit
- loadsp 4 ; B
- addsp 0
- storesp 8 ; B
-
- ; shift A right 1 bit
- loadsp 8 ; A
- flip
- addsp 0
- flip
- storesp 12 ; A
- .endm
-
-
-
-/* vectors */
- .balign 32,0
-# offset 0x0000 0000
- .globl _start
-_start:
- ; intSp must be 0 when we jump to _premain; aha BLa
-
- ;im ZPU_ID
- ;loadsp 0
- ;im _cpu_config
- ;store
- ;config
- jmp _premain
-
-
- .balign 32,0
-# offset 0x0000 0020
- .globl _zpu_interrupt_vector
-_zpu_interrupt_vector:
- jmp ___zpu_interrupt_vector
-
-# memreg moved Bla
-# offset 0x0000 0030
- .balign 16,0
- .globl _memreg
- .weak _memreg
-_memreg:
-
-
-
-/* instruction emulation code */
-
-# opcode 34
-# offset 0x0000 0040
- .balign 32,0
-_loadh:
- loadsp 4
- ; by not masking out bit 0, we cause a memory access error
- ; on unaligned access
- im ~0x2
- and
- load
-
- ; mult 8
- loadsp 8
- im 3
- and
- fast_neg
- im 2
- add
- im 3
- ashiftleft
- ; shift right addr&3 * 8
- lshiftright
- im 0xffff
- and
- storesp 8
-
- poppc
-
-# opcode 35
-# offset 0x0000 0060
- .balign 32,0
-_storeh:
- loadsp 4
- ; by not masking out bit 0, we cause a memory access error
- ; on unaligned access
- im ~0x2
- and
- load
-
- ; mask
- im 0xffff
- loadsp 12
- im 3
- and
- fast_neg
- im 2
- add
- im 3
- ashiftleft
- ashiftleft
- not
-
- and
-
- loadsp 12
- im 0xffff
-
- nop
-
- fixedim _storehtail
- poppc
-
-
-# opcode 36
-# offset 0x0000 0080
- .balign 32,0
-_lessthan:
- loadsp 8
- fast_neg
- loadsp 8
- add
-
- ; DANGER!!!!
- ; 0x80000000 will overflow when negated, so we need to mask
- ; the result above with the compare positive to negative
- ; number case
- loadsp 12
- loadsp 12
- not
- and
- not
- and
-
-
- ; handle case where we are comparing a negative number
- ; and positve number. This can underflow. E.g. consider 0x8000000 < 0x1000
- loadsp 12
- not
- loadsp 12
- and
-
- or
-
-
-
- flip
- im 1
- and
-
-
- storesp 12
- storesp 4
- poppc
-
-
-# opcode 37
-# offset 0x0000 00a0
- .balign 32,0
-_lessthanorequal:
- loadsp 8
- loadsp 8
- lessthan
- loadsp 12
- loadsp 12
- eq
- or
-
- storesp 12
- storesp 4
- poppc
-
-
-# opcode 38
-# offset 0x0000 00c0
- .balign 32,0
-_ulessthan:
- ; fish up arguments
- loadsp 4
- loadsp 12
-
- /* low: -1 if low bit dif is negative 0 otherwise: neg (not x&1 and (y&1))
- x&1 y&1 neg (not x&1 and (y&1))
- 1 1 0
- 1 0 0
- 0 1 -1
- 0 0 0
-
- */
- loadsp 4
- not
- loadsp 4
- and
- im 1
- and
- neg
-
-
- /* high: upper 31-bit diff is only wrong when diff is 0 and low=-1
- high=x>>1 - y>>1 + low
-
- extremes
-
- 0000 - 1111:
- low= neg(not 0 and 1) = 1111 (-1)
- high=000+ neg(111) +low = 000 + 1001 + low = 1000
- OK
-
- 1111 - 0000
- low=neg(not 1 and 0) = 0
- high=111+neg(000) + low = 0111
- OK
-
-
- */
- loadsp 8
-
- flip
- addsp 0
- flip
-
- loadsp 8
-
- flip
- addsp 0
- flip
-
- sub
-
- ; if they are equal, then the last bit decides...
- add
-
- /* test if negative: result = flip(diff) & 1 */
- flip
- im 1
- and
-
- ; destroy a&b which are on stack
- storesp 4
- storesp 4
-
- storesp 12
- storesp 4
- poppc
-
-# opcode 39
-# offset 0x0000 00e0
- .balign 32,0
-_ulessthanorequal:
- loadsp 8
- loadsp 8
- ulessthan
- loadsp 12
- loadsp 12
- eq
- or
-
- storesp 12
- storesp 4
- poppc
-
-
-# opcode 40
-# offset 0x0000 0100
- .balign 32,0
- .globl _swap
-_swap:
- breakpoint ; tbd
-
-# opcode 41
-# offset 0x0000 0120
- .balign 32,0
-_slowmult:
- im _slowmultImpl
- poppc
-
-# opcode 42
-# offset 0x0000 0140
- .balign 32,0
-_lshiftright:
- loadsp 8
- flip
-
- loadsp 8
- ashiftleft
- flip
-
- storesp 12
- storesp 4
-
- poppc
-
-
-# opcode 43
-# offset 0x0000 0160
- .balign 32,0
-_ashiftleft:
- loadsp 8
-
- loadsp 8
- im 0x1f
- and
- fast_neg
- im _ashiftleftEnd
- add
- poppc
-
-
-
-# opcode 44
-# offset 0x0000 0180
- .balign 32,0
-_ashiftright:
- loadsp 8
- loadsp 8
- lshiftright
-
- ; handle signed value
- im -1
- loadsp 12
- im 0x1f
- and
- lshiftright
- not ; now we have an integer on the stack with the signed
- ; bits in the right position
-
- ; mask these bits with the signed bit.
- loadsp 16
- not
- flip
- im 1
- and
- im -1
- add
-
- and
-
- ; stuff in the signed bits...
- or
-
- ; store result into correct stack slot
- storesp 12
-
- ; move up return value
- storesp 4
- poppc
-
-# opcode 45
-# offset 0x0000 01a0
- .balign 32,0
-_call:
- ; fn
- loadsp 4
-
- ; return address
- loadsp 4
-
- ; store return address
- storesp 12
-
- ; fn to call
- storesp 4
-
- pushsp ; flush internal stack
- popsp
-
- poppc
-
-_storehtail:
-
- and
- loadsp 12
- im 3
- and
- fast_neg
- im 2
- add
- im 3
- ashiftleft
- nop
- ashiftleft
-
- or
-
- loadsp 8
- im ~0x3
- and
-
- store
-
- storesp 4
- storesp 4
- poppc
-
-
-# opcode 46
-# offset 0x0000 01c0
- .balign 32,0
-_eq:
- loadsp 8
- fast_neg
- loadsp 8
- add
-
- not
- loadsp 0
- im 1
- add
- not
- and
- flip
- im 1
- and
-
- storesp 12
- storesp 4
- poppc
-
-# opcode 47
-# offset 0x0000 01e0
- .balign 32,0
-_neq:
- loadsp 8
- fast_neg
- loadsp 8
- add
-
- not
- loadsp 0
- im 1
- add
- not
- and
- flip
-
- not
-
- im 1
- and
-
- storesp 12
- storesp 4
- poppc
-
-
-# opcode 48
-# offset 0x0000 0200
- .balign 32,0
-_neg:
- loadsp 4
- not
- im 1
- add
- storesp 8
-
- poppc
-
-
-# opcode 49
-# offset 0x0000 0220
- .balign 32,0
-_sub:
- loadsp 8
- loadsp 8
- fast_neg
- add
- storesp 12
-
- storesp 4
-
- poppc
-
-
-# opcode 50
-# offset 0x0000 0240
- .balign 32,0
-_xor:
- loadsp 8
- not
- loadsp 8
- and
-
- loadsp 12
- loadsp 12
- not
- and
-
- or
-
- storesp 12
- storesp 4
- poppc
-
-# opcode 51
-# offset 0x0000 0260
- .balign 32,0
-_loadb:
- loadsp 4
- im ~0x3
- and
- load
-
- loadsp 8
- im 3
- and
- fast_neg
- im 3
- add
- ; x8
- addsp 0
- addsp 0
- addsp 0
-
- lshiftright
-
- im 0xff
- and
- storesp 8
-
- poppc
-
-
-# opcode 52
-# offset 0x0000 0280
- .balign 32,0
-_storeb:
- loadsp 4
- im ~0x3
- and
- load
-
- ; mask away destination
- im _mask
- loadsp 12
- im 3
- and
- addsp 0
- addsp 0
- add
- load
-
- and
-
-
- im _storebtail
- poppc
-
-# opcode 53
-# offset 0x0000 02a0
- .balign 32,0
-_div:
- jmp ___div
-
-# opcode 54
-# offset 0x0000 02c0
- .balign 32,0
-_mod:
- jmp ___mod
-
-# opcode 55
-# offset 0x0000 02e0
- .balign 32,0
- .globl _eqbranch
-_eqbranch:
- loadsp 8
-
- ; eq
-
- not
- loadsp 0
- im 1
- add
- not
- and
- flip
- im 1
- and
-
- ; mask
- im -1
- add
- loadsp 0
- storesp 16
-
- ; no branch address
- loadsp 4
-
- and
-
- ; fetch boolean & neg mask
- loadsp 12
- not
-
- ; calc address & mask for branch
- loadsp 8
- loadsp 16
- add
- ; subtract 1 to find PC of branch instruction
- im -1
- add
-
- and
-
- or
-
- storesp 4
- storesp 4
- storesp 4
- poppc
-
-
-# opcode 56
-# offset 0x0000 0300
- .balign 32,0
- .globl _neqbranch
-_neqbranch:
- loadsp 8
-
- ; neq
-
- not
- loadsp 0
- im 1
- add
- not
- and
- flip
-
- not
-
- im 1
- and
-
- ; mask
- im -1
- add
- loadsp 0
- storesp 16
-
- ; no branch address
- loadsp 4
-
- and
-
- ; fetch boolean & neg mask
- loadsp 12
- not
-
- ; calc address & mask for branch
- loadsp 8
- loadsp 16
- add
- ; find address of branch instruction
- im -1
- add
-
- and
-
- or
-
- storesp 4
- storesp 4
- storesp 4
- poppc
-
-# opcode 57
-# offset 0x0000 0320
- .balign 32,0
- .globl _poppcrel
-_poppcrel:
- add
- ; address of poppcrel
- im -1
- add
- poppc
-
-# opcode 58
-# offset 0x0000 0340
- .balign 32,0
- .globl _config
-_config:
- im 1
- nop
- im _hardware
- store
- storesp 4
- poppc
-
-# opcode 59
-# offset 0x0000 0360
- .balign 32,0
-_pushpc:
- loadsp 4
- im 1
- add
- storesp 8
- poppc
-
-# opcode 60
-# offset 0x0000 0380
- .balign 32,0
-_syscall_emulate:
- .byte 0
-
-# opcode 61
-# offset 0x0000 03a0
- .balign 32,0
-_pushspadd:
- pushsp
- im 4
- add
- loadsp 8
- addsp 0
- addsp 0
- add
- storesp 8
-
- poppc
-
-# opcode 62
-# offset 0x0000 03c0
- .balign 32,0
-_halfmult:
- breakpoint
-
-# opcode 63
-# offset 0x0000 03e0
- .balign 32,0
-_callpcrel:
- loadsp 4
- loadsp 4
- add
- im -1
- add
- loadsp 4
-
- storesp 12 ; return address
- storesp 4
- pushsp ; this will flush the internal stack.
- popsp
- poppc
-
- .text
-
-
-
-
-_ashiftleftBegin:
- .rept 0x1f
- addsp 0
- .endr
-_ashiftleftEnd:
- storesp 12
- storesp 4
- poppc
-
-_storebtail:
- loadsp 12
- im 0xff
- and
- loadsp 12
- im 3
- and
-
- fast_neg
- im 3
- add
- ; x8
- addsp 0
- addsp 0
- addsp 0
-
- ashiftleft
-
- or
-
- loadsp 8
- im ~0x3
- and
-
- store
-
- storesp 4
- storesp 4
- poppc
-
-
-
-
-; NB! this is not an EMULATE instruction. It is a varargs fn.
- .globl _syscall
-_syscall:
- syscall
- poppc
-
-_slowmultImpl:
-
- loadsp 8 ; A
- loadsp 8 ; B
- im 0 ; C
-
-.LmoreMult:
- mult1bit
-
- ; cutoff
- loadsp 8
- .byte (.LmoreMult-.Lbranch)&0x7f+0x80
-.Lbranch:
- neqbranch
-
- storesp 4
- storesp 4
- storesp 12
- storesp 4
- poppc
-
-___mod:
- cimpl __modsi3
-___div:
- cimpl __divsi3
-
- .globl ___zpu_interrupt_vector
- .weak ___zpu_interrupt_vector
-
-___zpu_interrupt_vector:
- jsr _zpu_interrupt
- poppc
-
- .data
- .balign 4,0
-_mask:
- .long 0x00ffffff
- .long 0xff00ffff
- .long 0xffff00ff
- .long 0xffffff00
-
-
- .globl _hardware
-_hardware:
- .long 0
- .globl _cpu_config
-_cpu_config:
- .long 0
-
diff --git a/mig_test/software/lib/divmod.c b/mig_test/software/lib/divmod.c
deleted file mode 100644
index e810ea7..0000000
--- a/mig_test/software/lib/divmod.c
+++ /dev/null
@@ -1,50 +0,0 @@
-long udivmodsi4 ();
-
-long
-__divsi3 (long a, long b)
-{
- int neg = 0;
- long res;
-
- if (a < 0)
- {
- a = -a;
- neg = !neg;
- }
-
- if (b < 0)
- {
- b = -b;
- neg = !neg;
- }
-
- res = udivmodsi4 (a, b, 0);
-
- if (neg)
- res = -res;
-
- return res;
-}
-
-long
-__modsi3 (long a, long b)
-{
- int neg = 0;
- long res;
-
- if (a < 0)
- {
- a = -a;
- neg = 1;
- }
-
- if (b < 0)
- b = -b;
-
- res = udivmodsi4 (a, b, 1);
-
- if (neg)
- res = -res;
-
- return res;
-}
diff --git a/mig_test/software/lib/premain.c b/mig_test/software/lib/premain.c
deleted file mode 100644
index 6206c06..0000000
--- a/mig_test/software/lib/premain.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-extern char _data_start;
-extern char _data_end;
-extern char _data_start_rom;
-*/
-
-
-void _premain( void)
-{
-/*
- int count;
- char *dst = (char *) &_data_start;
- char *src = (char *) &_data_start_rom;
-
- if ( (&_data_start) != (&_data_start_rom) )
- {
- count = &_data_end - &_data_start;
- while (count--)
- {
- *dst++ = *src++;
- }
- }
-*/
-
- main();
-}
diff --git a/mig_test/software/lib/udivmodsi4.c b/mig_test/software/lib/udivmodsi4.c
deleted file mode 100644
index 7d1cb67..0000000
--- a/mig_test/software/lib/udivmodsi4.c
+++ /dev/null
@@ -1,24 +0,0 @@
-unsigned long
-udivmodsi4(unsigned long num, unsigned long den, int modwanted)
-{
- unsigned long bit = 1;
- unsigned long res = 0;
-
- while (den < num && bit && !(den & (1L<<31)))
- {
- den <<=1;
- bit <<=1;
- }
- while (bit)
- {
- if (num >= den)
- {
- num -= den;
- res |= bit;
- }
- bit >>=1;
- den >>=1;
- }
- if (modwanted) return num;
- return res;
-}
diff --git a/mig_test/software/libhal/Makefile b/mig_test/software/libhal/Makefile
deleted file mode 100644
index fe149c1..0000000
--- a/mig_test/software/libhal/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/libhal/Makefile $
-# $Date$
-# $Author$
-# $Revision$
-#
-
-DIR=..
-include include.mak
-
-
-C_FILES=hw.c common.c timer.c uart.c vga.c
-OBJECTS=hw.o common.o timer.o uart.o vga.o
-INCLUDES=../include/peripherie.h
-
-
-all: libhal.a
-
-
-libhal.a: $(OBJECTS) $(INCLUDES)
- $(AR) clr libhal.a $(OBJECTS)
- $(RANLIB) libhal.a
-
-
-%.o: %.c $(INCLUDES)
- $(CC) -c -o $@ $< $(CFLAGS)
-
-
-clean:
- rm -f *.o
- rm -f libhal.a
diff --git a/mig_test/software/libhal/common.c b/mig_test/software/libhal/common.c
deleted file mode 100644
index 941c7e4..0000000
--- a/mig_test/software/libhal/common.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWF_Internals/FPGA/hw_sp605/bsp_zpuahb/software/libhal/common.c $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-
-#include <peripherie.h>
-#include <stdlib.h> // utoa, dtostrf (actually not implemented)
-
-////////////////////////////////////////
-// common stuff
-
-
-// libgloss/zpu/syscalls.c work with inbyte and outbyte
-char putchar( char c)
-{
- return stdout( c);
-}
-
-
-
-void putstr(const char *s)
-{
- while (*s)
- putchar( *s++);
-}
-
-
-/*
- print data in binary format
- prepend 0b
- parameter: dataType - number of bits
-*/
-void putbin( unsigned char dataType, unsigned long data)
-{
- unsigned char i, temp;
- char dataString[] = "0b ";
-
- for(i=dataType; i>0; i--)
- {
- temp = data % 2;
- dataString [i+1] = temp + 0x30;
- data = data/2;
- }
- putstr( dataString);
-}
-
-
-// http://asalt-vehicle.googlecode.com/svn› trunk› src› uart.c
-unsigned char puthex( unsigned char dataType, unsigned long data)
-{
- unsigned char count = 8; // number of chars
- unsigned char i;
- unsigned char temp;
- char dataString[] = " ";
-
- // dataType = bit width
- if (dataType == 4) count = 1;
- if (dataType == 8) count = 2;
- if (dataType == 16) count = 4;
-
- for(i=count; i>0; i--)
- {
- temp = data % 16;
- if (temp<10) dataString [i-1] = temp + 0x30;
- else dataString [i-1] = (temp - 10) + 0x41;
-
- data = data/16;
- }
- dataString[count] = '\0';
- putstr( dataString);
-
- return count; // return length
-}
-
-
-
-// http://www.mikrocontroller.net/articles/FAQ#itoa.28.29
-unsigned char itoa( long z, char* Buffer )
-{
- int i = 0;
- int j;
- char tmp;
- unsigned u; // In u bearbeiten wir den Absolutbetrag von z.
-
- // ist die Zahl negativ?
- // gleich mal ein - hinterlassen und die Zahl positiv machen
- if( z < 0 ) {
- Buffer[0] = '-';
- Buffer++;
- // -INT_MIN ist idR. größer als INT_MAX und nicht mehr
- // als int darstellbar! Man muss daher bei der Bildung
- // des Absolutbetrages aufpassen.
- u = ( (unsigned)-(z+1) ) + 1;
- }
- else {
- u = (unsigned)z;
- }
- // die einzelnen Stellen der Zahl berechnen
- do {
- Buffer[i++] = '0' + u % 10;
- u /= 10;
- } while( u > 0 );
-
- // den String in sich spiegeln
- for( j = 0; j < i / 2; ++j ) {
- tmp = Buffer[j];
- Buffer[j] = Buffer[i-j-1];
- Buffer[i-j-1] = tmp;
- }
- Buffer[i] = '\0';
- // Laengenkorrektur wg. Vorzeichen
- if (z < 0)
- i++;
- return i; // BLa: Laenge des Buffers zurueckgeben
-}
-
-unsigned char utoa( unsigned long i, char *p)
-{
- unsigned char length;
-
- length = 0;
- do {
- *--p = '0' + i % 10;
- i /= 10;
- length++;
- } while (i > 0);
- return length;
-}
-
-
-unsigned char putuint( unsigned long data)
-{
- char str[20];
- unsigned char length;
-
- length = utoa( data, str);
- putstr( str);
- return length;
-}
-
-
-unsigned char putint( long data)
-{
- char str[20];
- unsigned char length;
-
- length = itoa( data, str);
- putstr( str);
- return length;
-}
-/*
- putint( 1000); putchar('\n'); // ok
- putint( 10000); putchar('\n'); // ok
- putint( 100000); putchar('\n'); // ok
- putint( 1000000); putchar('\n'); // ok
- putint( 10000000); putchar('\n'); // ok
- putint( 100000000); putchar('\n'); // ok
- putint( 200000000); putchar('\n'); // ok
- putint( 400000000); putchar('\n'); // ok
- putint( 800000000); putchar('\n'); // ok
- putint( 1000000000); putchar('\n'); // ok
- putint( 2000000000); putchar('\n'); // ok
- putint( 4000000000); putchar('\n'); // -294967296 warning: this decimal constant is unsigned only in ISO C90
- putint( 8000000000); putchar('\n'); // -589934592 warning: integer constant is too large for "long" type
-*/
-
-unsigned char putfloat( float data)
-{
- char str[20];
- unsigned char length;
-
- length = dtostrf( data, 2, 1, str);
- putstr( str);
- return length;
-}
-
-
-// p means pseudo float
-// (an integer with 3 significant digits after the point)
-void putpfloat( unsigned long data)
-{
- putint( data/1000);
- putchar( '.');
- putint( data%1000 );
-}
-
-
-unsigned char putbool( int data)
-{
- if (data)
- {
- putstr( "yes");
- }
- else
- {
- putstr( "no");
- }
- return 0;
-}
-
diff --git a/mig_test/software/libhal/hw.c b/mig_test/software/libhal/hw.c
deleted file mode 100644
index 8401010..0000000
--- a/mig_test/software/libhal/hw.c
+++ /dev/null
@@ -1,28 +0,0 @@
-#include "peripherie.h"
-
-volatile uint32_t *debug_con0 = (uint32_t *) 0x80000000;
-volatile uint32_t *reset_reg = (uint32_t *) 0x80000004;
-apbuart_t *uart0 = (apbuart_t *) 0x80000100;
-gptimer_t *timer0 = (gptimer_t *) 0x80000200;
-irqmp_t *irqmp0 = (irqmp_t *) 0x80000300;
-grgpio_t *gpio0 = (grgpio_t *) 0x80000400;
-apbvga_t *vga0 = (apbvga_t *) 0x80000600;
-i2cmst_t *i2c_dvi = (i2cmst_t *) 0x80000700;
-i2cmst_t *i2c_fmc = (i2cmst_t *) 0x80000a00;
-
-mctrl_t *mctrl0 = (mctrl_t *) 0x80000f00;
-/*
-greth_t *ether0 = (greth_t *) 0x80000c00;
-dcm_ctrl_t *dcm_ctrl0 = (dcm_ctrl_t *) 0x80000e00;
-ddrspa_t *ddr0 = (ddrspa_t *) 0xfff00000;
-*/
-
-char debug_putchar( char c)
-{
- *debug_con0 = (uint32_t) c;
- return 0;
-}
-
-char (* stdout) (char) = debug_putchar;
-
-
diff --git a/mig_test/software/libhal/include.mak b/mig_test/software/libhal/include.mak
deleted file mode 100644
index 226ca66..0000000
--- a/mig_test/software/libhal/include.mak
+++ /dev/null
@@ -1,16 +0,0 @@
-AS=zpu-elf-as
-CC=zpu-elf-gcc
-LD=zpu-elf-ld
-OBJCOPY=zpu-elf-objcopy
-OBJDUMP=zpu-elf-objdump
-AR=zpu-elf-ar
-RANLIB=zpu-elf-ranlib
-SIZE=zpu-elf-size
-
-ROMGEN=$(DIR)/support/zpuromgen
-
-INLCUDES=-I$(DIR)/include
-ASFLAGS=-adhls -g $(INLCUDES)
-CFLAGS=-O3 -phi -Wall -ffunction-sections -fdata-sections $(INLCUDES)
-LDFLAGS=--relax --gc-sections
-OBJCOPYFLAGS=--strip-debug --discard-locals
diff --git a/mig_test/software/libhal/timer.c b/mig_test/software/libhal/timer.c
deleted file mode 100644
index 789c565..0000000
--- a/mig_test/software/libhal/timer.c
+++ /dev/null
@@ -1,132 +0,0 @@
-#include "peripherie.h"
-
-#include "timer.h"
-
-////////////////////////////////////////
-// timer functions
-// timer 0.0 is used for usleep
-// timer 0.0 is used for msleep
-// timer 0.0 is used for sleep (via msleep)
-//
-// timer 0.0 ticks with milliseconds
-// timer 0.1 ticks with seconds
-
-
-// wait for a given time in micro seconds
-void usleep(uint32_t usec)
-{
- uint32_t tcr;
-
- // 1 usec = 6
- timer0->e[0].reload = (F_CPU/TIMER_PRESCALER/1000000)*usec;
- timer0->e[0].ctrl = TIMER_ENABLE | TIMER_LOAD;
-
- do
- {
- tcr = timer0->e[0].ctrl;
- } while ( (tcr & TIMER_ENABLE));
-}
-
-
-// wait for given time in milli seconds
-void msleep(uint32_t msec)
-{
- uint32_t tcr;
-
- // some values for 50MHz @ Spartan 3e
- // 1 msec = 6250
- // 167 msec = 2**20 (20 bit counter) 391 slices
- // 2684 msec = 2**24 (24 bit counter) 450 slices
- // = 2**32 (32 bit counter) 572 slices
- // some values for 52MHz @ Spartan 6
- // 1 msec = 6500
- // 161 msec = 2**20 (20 bit counter)
- // 2581 msec = 2**24 (24 bit counter) 450 slices
- // 660 sec = 2**32 (32 bit counter) 572 slices
- timer0->e[0].reload = (F_CPU/TIMER_PRESCALER/1000)*msec;
- timer0->e[0].ctrl = TIMER_ENABLE | TIMER_LOAD;
-
- do
- {
- tcr = timer0->e[0].ctrl;
- } while ( (tcr & TIMER_ENABLE));
-}
-
-
-// wait for given time in seconds
-void sleep(uint32_t sec)
-{
- uint32_t timer;
-
- for (timer=0; timer<sec; timer++)
- {
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- msleep( 100);
- }
-}
-
-
-
-// deliver the milliseconds from timer 0.0
-uint32_t msecs( void)
-{
- return( timer0->e[0].value);
-}
-
-
-// deliver the seconds from timer 0.1
-uint32_t seconds( void)
-{
- return( timer0->e[1].value);
-}
-
-
-// deliver the time (in seconds and fraction) from timer
-uint32_t get_time( void)
-{
- uint32_t value;
-
- TIMER_STOP;
-
- // combine values (seconds.milliseconds)
- value = timer0->e[1].value * 1000 + timer0->e[0].value;
-
- TIMER_RUN;
-
- return( value);
-}
-
-
-// just a loop
-void wait( uint32_t value)
-{
- uint32_t i;
-
- for (i=0; i<value; i++) {}
-}
-
-
-// initialisation for the timer
-void timer_init( void)
-{
- timer0->scaler_reload = TIMER_PRESCALER-1; // set prescaler
-
- // set timer 0.1 in chain mode to timer 0.0
- // so it counts in seconds
- timer0->e[1].reload = 0xffffffff;
- timer0->e[1].ctrl = TIMER_ENABLE | TIMER_RESTART | TIMER_LOAD | TIMER_CHAIN;
-
- // set timer 0.0 to free running in msec
- timer0->e[0].reload = (F_CPU/TIMER_PRESCALER/CLOCKS_PER_SECOND);
- timer0->e[0].ctrl = TIMER_ENABLE | TIMER_RESTART | TIMER_LOAD;
-}
-
-
diff --git a/mig_test/software/libhal/uart.c b/mig_test/software/libhal/uart.c
deleted file mode 100644
index d1290b5..0000000
--- a/mig_test/software/libhal/uart.c
+++ /dev/null
@@ -1,56 +0,0 @@
-//#include <stdio.h>
-
-#include "peripherie.h"
-
-////////////////////////////////////////
-// common defines
-
-#define bit_is_set(mem, bv) (mem & bv)
-#define bit_is_clear(mem, bv) (!(mem & bv))
-#define loop_until_bit_is_set(mem, bv) do {} while( bit_is_clear(mem, bv))
-#define loop_until_bit_is_clear(mem, bv) do {} while( bit_is_set(mem, bv))
-
-
-////////////////////////////////////////
-// uart functions
-
-
-void uart_init( void)
-{
- uart0->scaler = UART_SCALER;
- uart0->ctrl = UART_CONTROL_TX_ENABLE | UART_CONTROL_RX_ENABLE;
-}
-
-
-unsigned int uart_check_receiver()
-{
- return ( bit_is_set( uart0->status, UART_STATUS_DATA_READY) != 0);
-}
-
-
-char uart_getchar()
-{
- loop_until_bit_is_set(uart0->status, UART_STATUS_DATA_READY);
- return uart0->data;
-}
-
-
-void uart_putchar_raw( char c)
-{
- #if UART_FIFOSIZE==1 || !defined(UART_FIFOSIZE)
- loop_until_bit_is_set( uart0->status, UART_STATUS_TX_REG_EMPTY);
- #else
- loop_until_bit_is_clear( uart0->status, UART_STATUS_TX_FIFO_FULL);
- #endif
- uart0->data = c;
-}
-
-
-char uart_putchar( char c)
-{
- if (c == '\n')
- uart_putchar_raw( '\r');
- uart_putchar_raw( c);
- return 0;
-}
-
diff --git a/mig_test/software/libhal/vga.c b/mig_test/software/libhal/vga.c
deleted file mode 100644
index 8cc55b9..0000000
--- a/mig_test/software/libhal/vga.c
+++ /dev/null
@@ -1,67 +0,0 @@
-//#include <stdio.h>
-
-#include "peripherie.h"
-
-
-////////////////////////////////////////
-// common defines
-
-#define bit_is_set(mem, bv) (mem & bv)
-#define bit_is_clear(mem, bv) (!(mem & bv))
-#define loop_until_bit_is_set(mem, bv) do {} while( bit_is_clear(mem, bv))
-#define loop_until_bit_is_clear(mem, bv) do {} while( bit_is_set(mem, bv))
-
-
-
-
-uint8_t vga_line;
-uint8_t vga_column;
-
-void vga_init( void)
-{
- vga0->background_color = 0x00000000;
- vga0->foreground_color = 0x0000ff00;
- vga_line = 0;
- vga_column = 0;
-}
-
-
-
-void vga_clear( void)
-{
- uint32_t count;
- uint32_t count_max = 37*80;
-
- for(count = 0; count< count_max; count++)
- vga0->data = count<<8;
-
- vga_line = 0;
- vga_column = 0;
-}
-
-
-void vga_putchar( char c)
-{
-
- vga0->data = (( vga_line * 80 + vga_column)<<8) | c;
- if ( (c == '\n') || (vga_column == 79) ) // line feed (+ carrige return)
- {
- if (vga_line<36)
- vga_line++;
- else
- vga_line = 0;
-
- vga_column = 0;
- }
- else if (c == '\f') // form feed
- {
- vga_clear();
- }
- else
- {
- vga_column++;
- }
-
-}
-
-
diff --git a/mig_test/software/main.c b/mig_test/software/main.c
deleted file mode 100644
index 535abf2..0000000
--- a/mig_test/software/main.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * $Date$
- * $Author$
- * $Revision$
- */
-
-//#include <stdio.h>
-
-#define BOARD_GIGABEE
-
-#include "../include/peripherie.h"
-#include <common.h>
-#include <timer.h> // sleep
-#include <uart.h>
-#include "schedule.h" // scheduler_init, scheduler_task_*
-#include "monitor.h" // monitor_init, monitor_add_command, monitor_mainloop
-#include "monitor_functions.h" // x_function, wmem_function, clear_function, quit_function
-
-
-////////////////////////////////////////
-// named IOs
-// input
-#define MAC_DATA (1<< 4)
-#define SIMULATION_ACTIVE (1<< 31)
-// output
-#define LED0 (1<< 0)
-#define LED1 (1<< 1)
-#define LED2 (1<< 2)
-#define LED3 (1<< 3)
-#define LED_USER (1<< 5)
-
-
-
-
-
-
-
-////////////////////////////////////////////////////////////
-
-uint32_t simulation_active;
-volatile uint8_t timer_tick;
-uint8_t end_simulation = FALSE;
-
-
-////////////////////////////////////////
-// prototypes
-
-void running_light( uint32_t simulation_active);
-
-uint32_t run_light_function( void);
-
-
-
-
-////////////////////////////////////////
-// combined print functions
-
-/*
-char uart_lcd_putchar( char c, FILE *stream)
-{
- uart_putchar( c, stream);
- lcd_putc( c, stream);
-}
-*/
-
-
-
-
-// helper functions ////////////////////////////////////////
-////////////////////////////////////////////////////////////
-
-// monitor functions ///////////////////////////////////////
-////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////
-
-void running_light( uint32_t simulation_active)
-{
- unsigned int pattern = 0x80300700;
-
- while (1)
- {
-
- gpio0->ioout = 0x0000000f & pattern;
- pattern = (pattern << 1) | (pattern >> 31);
-
-
- if ( simulation_active)
- {
- // do only limited runs
- if ( timer_tick)
- {
- timer_tick = FALSE;
- scheduler_task_check();
-
- if ( end_simulation) break;
- }
- }
- else
- {
- msleep( 125);
- }
- }
-
-}
-
-
-////////////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////
-// functions for scheduler
-
-void end_simulation_task( void)
-{
- end_simulation = TRUE;
-}
-
-
-
-void running_light_task( void)
-{
- static unsigned int pattern = 0x80300700;
-
- gpio0->ioout = 0x0000000f & pattern;
- pattern = (pattern << 1) | (pattern >> 31);
-
- scheduler_task_add( running_light_task, SECONDS( 0.125));
-}
-
-
-
-////////////////////////////////////////////////////////////
-// start running light
-uint32_t run_light_function( void)
-{
- scheduler_task_add( running_light_task, 1);
- return 0;
-}
-
-
-
-//
-// process serial commands
-//
-void uart_monitor( void)
-{
- uint8_t c;
- uint8_t key_time_out = 250;
- uint32_t key_state;
-
- putchar( '\n');
-
- monitor_init();
-
-
-// monitor_add_command("reset", "system reset", reset_function);
- monitor_add_command("sysinfo", "show system info <verbose>", system_info_function);
-
- monitor_add_command("run", "running light", run_light_function);
-
- monitor_add_command("wmem", "write word <addr> <length> <value(s)>", wmem_function);
- monitor_add_command("x", "eXamine memory <addr> <length>", x_function);
- monitor_add_command("task", "print tasklist", scheduler_tasklist);
-
- monitor_add_command("help", "", help_function);
-
-
- // initial help
- help_function();
-
- monitor_prompt();
-
- monitor_run = TRUE;
-
- while( monitor_run)
- {
- // process scheduler
- if ( timer_tick)
- {
- timer_tick = FALSE;
- scheduler_task_check();
- }
-
- // process uart
- if ( uart_check_receiver() )
- {
- monitor_input( uart_getchar() );
- }
-
- // process commands
- monitor_mainloop();
- }
-}
-
-
-
-////////////////////////////////////////////////////////////
-
-void banner( void)
-{
- putstr("\n\n");
- putstr("BSP Trenz Gigabee");
-
- char *hw_revision = (char *)0x80000000;
- char *svn_revision = (char *)0x80000020;
- int32_t *hw_frequency = (int32_t *)0x80000040;
-
- if (simulation_active)
- {
- putstr(" (on sim)\n");
- }
- else
- {
- putstr("\nSVN revision : "); putstr( svn_revision);
- putstr("\nHW synthesized: "); putstr( hw_revision);
- putstr("\nHW frequency : "); putint( *hw_frequency/1000000); putstr(" MHz");
- putstr("\nSW compiled : " __DATE__ " " __TIME__ );
- putstr("\nSW frequency : "); putint( F_CPU/1000000); putstr(" MHz");
- putchar('\n');
- }
-}
-
-
-////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////
-void _zpu_interrupt( void)
-{
- uint32_t reg_val;
-
- // check for timer 0.0 interrupt
- reg_val = timer0->e[0].ctrl;
- if bit_is_set( reg_val, TIMER_INT_PENDING)
- {
- // clear interrupt pending bit
- clear_bit( reg_val, TIMER_INT_PENDING);
- timer0->e[0].ctrl = reg_val;
-
- timer_tick = TRUE;
- }
- return;
-}
-
-////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////
-
-int main(void)
-{
-
- // check if on simulator or on hardware
- simulation_active = bit_is_set( gpio0->iodata, (1<<31));
-
- ////////////////////////////////////////////////////////////
- // init stuff
- timer_init();
- uart_init();
- scheduler_init();
-
-
- // enable timer interrupt, for scheduler
- set_bit( timer0->e[0].ctrl, TIMER_INT_ENABLE);
-
-
- if (!simulation_active)
- {
- stdout = uart_putchar;
- }
- else
- {
- // debug_putchar is for simulator
- stdout = debug_putchar;
- }
-
- ////////////////////////////////////////////////////////////
- banner();
-
- ////////////////////////////////////////////////////////////
- // decide which main function to use
-
- if ( !simulation_active)
- {
- uart_monitor();
- }
-
- // test of scheduler
- scheduler_task_add( end_simulation_task, 1);
- running_light( simulation_active);
-
- ////////////////////////////////////////////////////////////
- // end simulation
- abort();
-
-}
diff --git a/mig_test/software/monitor.c b/mig_test/software/monitor.c
deleted file mode 100644
index c5131e6..0000000
--- a/mig_test/software/monitor.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/monitor.c $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-#include "monitor.h"
-
-////////////////////////////////////////////////////////////
-// monitor functions
-
-static char command_list[MAX_COMMANDS][MAX_COMMAND_LENGTH];
-static char help_list [MAX_COMMANDS][MAX_HELP_LENGTH];
-static command_ptr_t command_ptr_list[MAX_COMMANDS];
-
-uint8_t buffer[BUFFER_LENGTH];
-uint8_t command_number;
-uint8_t buffer_position;
-command_ptr_t exec_function;
-
-
-
-/*
- reset some values for monitor
-*/
-void monitor_init( void)
-{
- buffer_position = 0;
- command_number = 0;
- exec_function = 0;
-}
-
-
-/*
- add an command to the monitor list
-*/
-void monitor_add_command(char* new_command, char* new_help, command_ptr_t new_command_ptr)
-{
- if (command_number < MAX_COMMANDS)
- {
- strcpy( command_list[ command_number], new_command);
- strcpy( help_list[ command_number], new_help);
- command_ptr_list[ command_number] = new_command_ptr;
- command_number++;
- }
- else
- {
- putstr("ERROR: too much commands.\n");
- }
-}
-
-
-/*
- print out a nice promt
-*/
-void monitor_prompt( void) {
- putstr("> ");
-}
-
-
-/*
- check the line buffer content and search command
-*/
-void process_buffer( void) {
- uint8_t command_index;
- uint8_t i;
-
- i = 0;
-
- while ( !((buffer[i] == ' ') || (buffer[i] == 0)) ) i++;
-
- if (!i) {
- monitor_prompt();
- return;
- }
-
- for ( command_index = 0; command_index < command_number; command_index++) {
- if ( !strncmp( command_list[ command_index], buffer, i) ) {
- exec_function = command_ptr_list[ command_index];
- return;
- }
- }
- putstr("command not found.\n");
- monitor_prompt();
-}
-
-
-uint8_t monitor_run;
-
-
-/*
- execute the command
-*/
-void monitor_mainloop( void)
-{
- uint32_t return_value;
-
- // execute selected function
- if (exec_function) {
- return_value = exec_function();
- exec_function = 0;
-
- // print return value (as hex)
- if (return_value > 0)
- {
- putstr("0x");
- if (return_value > 0xffff)
- puthex(32, return_value);
- else
- if (return_value > 0xff)
- puthex(16, return_value);
- else
- puthex(8, return_value);
- putchar('\n');
- }
-
- monitor_prompt();
- }
-}
-
-
-/*
- add an character to the monitor line buffer
-*/
-void monitor_input(uint8_t c) {
-
- // carrige return
- if (c == CR) {
- putchar( LF);
- buffer[ buffer_position++] = 0;
- process_buffer();
- buffer_position = 0;
-
- // backspace or delete
- } else if ( (c == BS) || (c == DEL)) {
- if (buffer_position > 0) {
- putchar( BS);
- putchar( ' ');
- putchar( BS);
- buffer_position--;
- }
- } else {
- // add to buffer
- if ((c >= 0x20) && (buffer_position < (BUFFER_LENGTH-1))) {
- putchar( c);
- buffer[ buffer_position++] = c;
- }
- }
-}
-
-
-/*
- parse the argument as string
-*/
-char* monitor_get_argument_string(uint8_t num)
-{
- uint8_t index;
- uint8_t arg;
-
- // example line:
- // " command arg1 arg2 arg3 "
-
- index = 0;
-
- // search for first char (non space)
- while (( buffer[ index] != 0) && (buffer[ index] == ' ')) index++;
-
- for ( arg = 0; arg < num; arg++)
- {
- // next space
- while (( buffer[ index] != 0) && (buffer[ index] != ' ')) index++;
- // next non space
- while (( buffer[ index] != 0) && (buffer[ index] == ' ')) index++;
- }
- return &buffer[ index];
-}
-
-
-/*
- parse the argument as integer
-*/
-int monitor_get_argument_int(uint8_t num)
-{
- char *endptr;
- return strtol( monitor_get_argument_string(num), &endptr, 0);
-}
-
-
-/*
- parse the argument as hex number
-*/
-uint32_t monitor_get_argument_hex(uint8_t num)
-{
- char *endptr;
- return strtoul( monitor_get_argument_string(num), &endptr, 16);
-}
-
-
-
-/*
- print all avalible functions as help screen
-*/
-uint32_t help_function( void)
-{
- uint8_t command_index;
- uint8_t i;
-
- putchar( LF);
- putstr("supported commands:\n\n");
- for ( command_index = 0; command_index < command_number; command_index++) {
- putstr( command_list[ command_index]);
- if (strlen( help_list[ command_index]) > 0 )
- {
- for (i = strlen( command_list[ command_index]); i < MAX_COMMAND_LENGTH; i++) putchar(' ');
- putstr( " - ");
- putstr( help_list[ command_index]);
- }
- putchar('\n');
- }
- putchar( LF);
- return command_number;
-}
-
-
diff --git a/mig_test/software/monitor.h b/mig_test/software/monitor.h
deleted file mode 100644
index 74d6472..0000000
--- a/mig_test/software/monitor.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/monitor.h $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-
-#ifndef MONITOR_H
-#define MONITOR_H
-
-#include <types.h>
-
-////////////////////////////////////////////////////////////
-// monitor definitions
-
-#define MAX_COMMANDS (64)
-#define MAX_COMMAND_LENGTH (12)
-#define MAX_HELP_LENGTH (40)
-#define BUFFER_LENGTH (80)
-
-#define CR '\r'
-#define LF '\n'
-#define BS '\b'
-#define DEL (0x7f)
-
-#define SOH (0x01)
-#define EOT (0x04)
-#define ACK (0x06)
-#define NAK (0x15)
-#define CAN (0x18)
-#define EOF (0x1a)
-
-
-////////////////////////////////////////////////////////////
-// monitor variables
-
-typedef uint32_t (*command_ptr_t) (void);
-
-extern char command_list[MAX_COMMANDS][MAX_COMMAND_LENGTH];
-extern char help_list [MAX_COMMANDS][MAX_HELP_LENGTH];
-extern command_ptr_t command_ptr_list[MAX_COMMANDS];
-
-extern uint8_t buffer[BUFFER_LENGTH];
-extern uint8_t command_number;
-extern uint8_t buffer_position;
-extern command_ptr_t exec_function;
-
-
-////////////////////////////////////////////////////////////
-// monitor functions
-
-void monitor_init( void);
-void monitor_add_command(char* new_command, char* new_help, command_ptr_t new_command_ptr);
-void monitor_prompt( void);
-void process_buffer( void);
-extern uint8_t monitor_run;
-
-void monitor_mainloop( void);
-void monitor_input(uint8_t c);
-char* monitor_get_argument_string(uint8_t num);
-int monitor_get_argument_int(uint8_t num);
-uint32_t monitor_get_argument_hex(uint8_t num);
-
-uint32_t help_function( void);
-
-#endif // MONITOR_H
diff --git a/mig_test/software/monitor_functions.c b/mig_test/software/monitor_functions.c
deleted file mode 100644
index 5eda564..0000000
--- a/mig_test/software/monitor_functions.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/monitor_functions.c $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-#include <types.h>
-#include "monitor.h"
-#include "ambainfo.h" // apb_info, ahb_info
-#include "peripherie.h"
-
-
-volatile uint8_t running_direction = 0;
-
-
-/*
- exit the monitor program
-*/
-uint32_t quit_function( void)
-{
- monitor_run = FALSE;
- return 0;
-}
-
-
-/*
- do a memory dump
- arguments:
- start address
- length
-*/
-uint32_t x_function( void)
-{
- uint32_t addr;
- uint32_t count;
- uint32_t index;
- uint32_t* ptr;
-
- addr = monitor_get_argument_hex(1);
- count = monitor_get_argument_hex(2);
-
- // set minimum count, if count is not set
- if (count == 0) count = 16;
-
- // we can only read at 32 bit aligned addresses
- ptr = (uint32_t*)(addr & 0xfffffffc);
-
- if (count != 1)
- {
- for (index = 0; index < count; index++)
- {
- if ( (index % 4) == 0)
- {
- putstr("\n0x"); puthex(32, (uint32_t)ptr); putstr(" : ");
- }
- putstr("0x"); puthex( 32, *ptr); putchar(' ');
- *ptr++;
- }
- }
- else
- // fast version without address
- {
- putstr("0x"); puthex( 32, *ptr);
- }
- putchar( '\n');
- return 0;
-}
-
-
-/*
- write specific value on memory
- arguments:
- address
- count
- value(0) .. value(n)
-*/
-uint32_t wmem_function( void)
-{
- uint32_t addr;
- uint8_t count;
- uint8_t index;
- uint32_t value;
- uint32_t* ptr;
-
- addr = monitor_get_argument_hex(1);
- count = monitor_get_argument_int(2);
-
- ptr = (uint32_t*)addr; // automatic word aligned
-
- index = 3;
- while (count > 0)
- {
- value = monitor_get_argument_hex(index);
- index++;
- count--;
- *ptr = value;
- ptr++;
- }
- return count;
-}
-
-
-/*
- clear screen
-*/
-uint32_t clear_function( void)
-{
- putchar('\f');
- return 0;
-}
-
-
-////////////////////////////////////////////////////////////
-// reset function
-uint32_t reset_function( void)
-{
- *reset_reg = 0x87654321;
- return 1;
-}
-
-
-////////////////////////////////////////////////////////////
-// system info
-uint32_t system_info_function( void)
-{
- uint8_t verbose;
-
- verbose = monitor_get_argument_int(1);
- ahb_info( verbose);
- return 0;
-}
-
-
diff --git a/mig_test/software/monitor_functions.h b/mig_test/software/monitor_functions.h
deleted file mode 100644
index 3061290..0000000
--- a/mig_test/software/monitor_functions.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/monitor_functions.h $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-
-#ifndef MONITOR_FUNCTIONS_H
-#define MONITOR_FUNCTIONS_H
-
-extern volatile uint8_t running_direction;
-
-
-uint32_t quit_function( void);
-uint32_t x_function( void);
-uint32_t wmem_function( void);
-uint32_t clear_function( void);
-
-uint32_t reset_function( void);
-
-uint32_t system_info_function( void);
-
-#endif // MONITOR_FUNCTIONS_H
diff --git a/mig_test/software/schedule.c b/mig_test/software/schedule.c
deleted file mode 100644
index 41357eb..0000000
--- a/mig_test/software/schedule.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/schedule.c $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-#include <types.h>
-#include "schedule.h"
-
-#define MAXTIMERS 10
-#define T_FREE 254 // > MAXTIMERS
-#define T_LAST 255
-
-typedef struct{
- uint8_t next; // next in list or end mark
- t_res delta; // delta to previous entry
- funcp func;
-} t_ctrl_struct;
-
-
-t_ctrl_struct t_ctrl_lst[MAXTIMERS];
-t_res t_delay; // count down until next service
-uint8_t t_first; // point to first entry
-
-
-void scheduler_task_check(void)
-{
- t_ctrl_struct *p; // for faster access
-
- --t_delay;
- while( t_delay == 0 ){ // serve if delay = 0
- if( t_first == T_LAST ) // no function to serve
- break;
- p = &t_ctrl_lst[t_first];
- t_first = p->next; // point to next
- p->next = T_FREE; // mark free
- t_delay = t_ctrl_lst[t_first].delta; // next delay delta
- p->func(); // execute function
- }
-}
-
-
-uint8_t scheduler_task_add( funcp func, t_res delay )
-{
- uint8_t n;
- uint8_t i; // index
- uint8_t ipre; // previous index
- t_res d1; // last delta delay
- t_ctrl_struct *p; // for faster access
-
- for( n = 0;; ){
- p = &t_ctrl_lst[n];
- if( p->next == T_FREE )
- break;
- n++;
- if( n == MAXTIMERS )
- return 1; // error, list full
- }
-
- i = t_first;
- d1 = t_delay;
- while( i != T_LAST ){ // check until end
- if( d1 >= delay ){ // last >= new
- t_ctrl_lst[i].delta = d1 - delay; // correct following entry
- break;
- }else{
- delay -= d1; // remaining delay
- ipre = i; // previous entry
- i = t_ctrl_lst[i].next; // index of next entry
- d1 = t_ctrl_lst[i].delta; // next delay delta
- }
- } // insert new entry
-
- p->next = i; // following entry
- p->delta = delay; // store remaining delay
- p->func = func;
-
- if( i == t_first ){ // insert at first
- t_first = n;
- t_delay = delay;
- }else{
- t_ctrl_lst[ipre].next = n; // previous entry
- }
- return 0; // successful
-}
-
-
-uint8_t scheduler_task_remove( funcp func )
-{
- uint8_t ipre; // previous index
- uint8_t irem; // index to be removed
- uint8_t ifol = t_first; // following index
- t_ctrl_struct *p; // for faster access
-
- do{
- if( ifol == T_LAST )
- return 1; // not found
- ipre = irem;
- irem = ifol;
- p = &t_ctrl_lst[irem];
- ifol = p->next; // get next
- }while( p->func != func ); // found it
-
- p->next = T_FREE; // mark it as free
- if( irem == t_first ){
- t_first = ifol; // serve next entry
- t_delay += t_ctrl_lst[ifol].delta; // correct current delta
- }else{
- t_ctrl_lst[ipre].next = ifol; // skip index
- if( ifol != T_LAST ) // correct following delta
- t_ctrl_lst[ifol].delta += p->delta;
- }
- return 0; // successful
-}
-
-
-void scheduler_init(void)
-{
- uint8_t i;
-
- for( i = MAXTIMERS; i; i-- )
- t_ctrl_lst[i-1].next = T_FREE; // mark all free
- t_first = T_LAST; // set no timer served
-}
-
-
-uint32_t scheduler_tasklist( void)
-{
- uint8_t i;
-
- for( i = MAXTIMERS; i; i-- )
- {
- if ( t_ctrl_lst[i-1].next != T_FREE)
- {
- putint( i);
- putstr(": func: ");
- puthex( 32, t_ctrl_lst[i-1].func);
- putchar('\n');
- }
- }
-
- return 0;
-}
diff --git a/mig_test/software/schedule.h b/mig_test/software/schedule.h
deleted file mode 100644
index cd9729d..0000000
--- a/mig_test/software/schedule.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/hw_sp605/bsp_zpuahb/software/schedule.h $
- * $Date$
- * $Author$
- * $Revision$
- */
-
-
-#ifndef SCHEDULE_H
-#define SCHEDULE_H
-
-#define t_res uint32_t // resolution for time
-
-#define SECONDS(x) ((t_res)(CLOCKS_PER_SECOND * x + 0.5))
-
-
-typedef void (*funcp)(void);
-
-void scheduler_task_check(void);
-uint8_t scheduler_task_add( funcp func, t_res delay );
-uint8_t scheduler_task_remove( funcp func );
-void scheduler_init(void);
-uint32_t scheduler_tasklist( void);
-
-#endif // SCHEDULE_H
diff --git a/mig_test/synthesis/Makefile b/mig_test/synthesis/Makefile
deleted file mode 100644
index 66be99b..0000000
--- a/mig_test/synthesis/Makefile
+++ /dev/null
@@ -1,474 +0,0 @@
-#
-# $HeadURL: https://svn.fzd.de/repo/concast/FWF_Projects/FWKE/beam_position_monitor/trunk/hardware/board_prototyp1/synthesis/Makefile $
-# $Date$
-# $Author$
-# $Revision$
-#
-
-MODULE = top
-DEVICE = xc6slx100
-SPEEDGRADE = 2
-PACKAGE = fgg484
-UCF_FILE = top.ucf
-CORES = ../cores/
-SOFTWARE = ../software
-BMM_FILE = zpu.bmm
-BMM_BD_FILE = zpu_bd.bmm
-
-BUILDDIR = isebuild
-DEVICE_DPS = $(DEVICE)-$(PACKAGE)-$(SPEEDGRADE)
-DATE = $(shell date +"%Y-%m-%d__%H_%M")
-LOGFILE = synthesis_log_$(DATE).txt
-export XST_LOGFILE := $(LOGFILE)
-
-
-define XST_FILE
-set -tmpdir "projnav.tmp"
-set -xsthdpdir "xst"
-run
--ifn ../$(MODULE).prj
--ifmt mixed
--ofn $(MODULE)
--ofmt NGC
--p $(DEVICE)-$(SPEEDGRADE)-$(PACKAGE)
--top $(MODULE)
--opt_mode Speed
--opt_level 1
--power NO
--iuc NO
--keep_hierarchy No
--netlist_hierarchy As_Optimized
--rtlview Yes
--glob_opt AllClockNets
--read_cores YES
--write_timing_constraints NO
--cross_clock_analysis NO
--hierarchy_separator /
--bus_delimiter <>
--case Maintain
--slice_utilization_ratio 100
--bram_utilization_ratio 100
--dsp_utilization_ratio 100
--lc Auto
--reduce_control_sets Auto
--fsm_extract YES -fsm_encoding Auto
--safe_implementation No
--fsm_style LUT
--ram_extract Yes
--ram_style Auto
--rom_extract Yes
--shreg_extract YES
--rom_style Auto
--auto_bram_packing NO
--resource_sharing YES
--async_to_sync NO
--shreg_min_size 2
--use_dsp48 Auto
--iobuf YES
--max_fanout 100000
--bufg 16
--register_duplication YES
--register_balancing No
--optimize_primitives NO
--use_clock_enable Auto
--use_sync_set Auto
--use_sync_reset Auto
--iob Auto
--equivalent_register_removal YES
--slice_utilization_ratio_maxmargin 5
--infer_ramb8 No
-endef
-
-# 16k
-define BMM16
-ADDRESS_SPACE zpu_i0_memory
- RAMB16 [0x00000000:0x00003fff]
- BUS_BLOCK
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram8 [31:28];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram7 [27:24];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram6 [23:20];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram5 [19:16];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram4 [15:12];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram3 [11: 8];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram2 [ 7: 4];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram1 [ 3: 0];
- END_BUS_BLOCK;
-END_ADDRESS_SPACE;
-endef
-
-# 32k
-define BMM
-ADDRESS_SPACE zpu_core_medium_i0_memory
- RAMB16 [0x00000000:0x00007fff]
- BUS_BLOCK
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram16 [31:30];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram15 [29:28];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram14 [27:26];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram13 [25:24];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram12 [23:22];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram11 [21:20];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram10 [19:18];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram9 [17:16];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram8 [15:14];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram7 [13:12];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram6 [11:10];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram5 [ 9: 8];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram4 [ 7: 6];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram3 [ 5: 4];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram2 [ 3: 2];
- box_i0/dualport_ram_ahb_wrapper_i0/dualport_ram_i0/Mram_ram1 [ 1: 0];
- END_BUS_BLOCK;
-END_ADDRESS_SPACE;
-endef
-
-
-define UT_FILE
--w
--g INIT_9K:Yes
--g DebugBitstream:No
--g Binary:no
--g CRC:Enable
--g Reset_on_err:Yes
--g ConfigRate:26
--g ProgPin:PullUp
--g TckPin:PullUp
--g TdiPin:PullUp
--g TdoPin:PullUp
--g TmsPin:PullUp
--g UnusedPin:PullDown
--g UserID:0xFFFFFFFF
--g ExtMasterCclk_en:No
--g SPI_buswidth:4
--g TIMER_CFG:0xFFFF
--g multipin_wakeup:No
--g StartUpClk:CClk
--g DONE_cycle:4
--g GTS_cycle:5
--g GWE_cycle:6
--g LCK_cycle:NoWait
--g Security:None
--g DonePipe:No
--g DriveDone:No
--g en_sw_gsr:No
--g drive_awake:No
--g sw_clk:Startupclk
--g sw_gwe_cycle:5
--g sw_gts_cycle:4
-endef
-
-
-define PROGRAM_FPGA_FILE
-setMode -bscan
-setCable -port auto
-Identify
-assignFile -p 1 -file "$(MODULE)_update.bit"
-Program -p 1
-closeCable
-quit
-endef
-
-
-define PROGRAM_SPI_FILE
-setMode -bs
-setCable -port auto
-Identify -inferir
-identifyMPM
-attachflash -position 1 -spi "W25Q64BV"
-assignfiletoattachedflash -position 1 -file "$(MODULE)_update.mcs"
-Program -p 1 -dataWidth 4 -spionly -e -v -loadfpga
-closeCable
-quit
-endef
-
-
-export XST_FILE := $(XST_FILE)
-export BMM := $(BMM)
-export UT_FILE := $(UT_FILE)
-export PROGRAM_FPGA_FILE := $(PROGRAM_FPGA_FILE)
-export PROGRAM_SPI_FILE := $(PROGRAM_SPI_FILE)
-
-
-all:
- @echo "check - look for timing and other synthesis issues"
- @echo "xst - generate ngc file (netlist, replaces edif and netlist constrains)"
- @echo "translate - generate ngd file (native generic database [reduced to primitives])"
- @echo "map - generate ncd file (native ciruit description)"
- @echo "par - place&route ncd file (design implementation)"
- @echo "trace - generate timing report"
- @echo "bitgen - generate bit file (ncd -> bit)"
- @echo "update - update bitstream with elf file"
- @echo "program - program fpga with bit file"
- @echo "genmcs - genrate mcs file"
- @echo "genbin - genrate bin(ary) file"
- @echo "progspi - program spi flash with mcs file"
- @echo "clean"
- @echo "..."
- @echo "softflow - just update fpga with software (software update program)"
- @echo "testflow - time software bitgen trace update program check"
- @echo "finalflow - time software bitgen trace update progspi check"
-
-
-softflow:
- make software update program
-
-testflow:
- time $(MAKE) software bitgen trace update program check 2>&1 | tee $(XST_LOGFILE)
-
-finalflow:
- time $(MAKE) software bitgen trace update progspi check 2>&1 | tee $(XST_LOGFILE)
-
-
-check:
- @echo -e "Timing score: "
- @grep --with-filename "Timing Score" $(BUILDDIR)/*.par
- @echo -e "\nUnwanted Latches (737): "
- @grep --with-filename "WARNING:Xst:737" $(BUILDDIR)/*.syr || echo -n
- @echo -e "\nUnassigned signals (653): "
- @grep --with-filename "WARNING:Xst:653" $(BUILDDIR)/*.syr || echo -n
- @echo -e "\nInternal tristates (2042): "
- @grep --with-filename "WARNING:Xst:2042" $(BUILDDIR)/*.syr || echo -n
- @echo -e "\nCombinatoric loops (2170): "
- @grep --with-filename "WARNING:Xst:2170" $(BUILDDIR)/*.syr || echo -n
- @echo -e "\nGated clocks (372): "
- @grep --with-filename "WARNING:PhysDesignRules:372" $(BUILDDIR)/*.bgn || echo -n
-
-
-software: sw_timestamp
- ###
- #############################################################################
- ### (re)compile software
- ###
- test ! -d $(SOFTWARE) || make all --directory $(SOFTWARE)
-
-
-sw_timestamp:
- ###
- #############################################################################
- #### update sw timestamp
- ###
- test ! -d $(SOFTWARE) || make --always-make timestamp --directory $(SOFTWARE)
-
-
-update: $(BUILDDIR)/$(MODULE).bit
- ###
- #############################################################################
- ### update the bitfile
- ###
- test ! -d $(SOFTWARE) || data2mem -bm $(BMM_BD_FILE) -bd $(SOFTWARE)/*.elf -bt $(BUILDDIR)/$(MODULE).bit -o b $(MODULE)_update.bit
- test -d $(SOFTWARE) || cp $(BUILDDIR)/$(MODULE).bit $(MODULE)_update.bit
-
-
-program:
- ###
- #############################################################################
- ### configure FPGA
- ###
- echo "$$PROGRAM_FPGA_FILE" > program_fpga.cmd
- impact -batch program_fpga.cmd
-
-
-genbin: $(MODULE)_update.bin
-
-$(MODULE)_update.bin: $(MODULE)_update.bit
- ###
- #############################################################################
- ### generate flash file, bin format for manual flashing
- ###
- promgen -b -p bin -w -o $(MODULE)_update.bin -u 0 $(MODULE)_update.bit
-
-
-genmcs: $(MODULE)_update.mcs
-
-$(MODULE)_update.mcs: $(MODULE)_update.bit
- ###
- #############################################################################
- ### generate flash file
- ###
- promgen -spi -p mcs -w -o $(MODULE)_update.mcs -s 8192 -u 0 $(MODULE)_update.bit
-
-
-progspi: genmcs
- ###
- #############################################################################
- ### program flash
- ###
- echo "$$PROGRAM_SPI_FILE" > program_spi.cmd
- impact -batch program_spi.cmd
-
-
-clean:
- rm -f $(MODULE).prj
- rm -f *.log
- rm -f _impact.cmd
- rm -f *.cfi
- rm -f *.prm
- rm -rf $(BUILDDIR)
- rm -rf _ngo
- rm -rf _xmsgs
- rm -f $(BMM_FILE)
- rm -f $(BMM_BD_FILE)
- rm -f $(MODULE).xst
- rm -f $(MODULE).ut
- rm -f program_fpga.cmd
- rm -f program_spi.cmd
-
-
-dir: $(MODULE).prj
- ###
- #############################################################################
- ### generate build directory
- ###
- mkdir -p $(BUILDDIR)
- mkdir -p $(BUILDDIR)/projnav.tmp
-
-
-
-$(MODULE).prj: ../vhdl_files.txt
- ###
- #############################################################################
- ### generate project file
- ###
- grep --invert rtl_tb ../vhdl_files.txt | grep --invert "\#" | grep --invert "^$$" | awk '{printf "vhdl %s ../%s\n",$$1,$$2}' > $(MODULE).prj
-
-
-xst: $(MODULE).ngc
-translate: $(MODULE).ngd
-map: $(MODULE)_map.ncd
-par: $(MODULE).ncd
-
-
-hw_timestamp:
- ###
- #############################################################################
- #### update hw timestamp
- ###
- test ! -f ../rtl/Makefile || make --directory ../rtl
-
-$(MODULE).ngc: dir hw_timestamp
- ###
- #############################################################################
- ### synthesis
- ###
- echo "$$XST_FILE" > $(MODULE).xst
- cd $(BUILDDIR) ; xst -ifn ../$(MODULE).xst -ofn $(MODULE).syr
-
-
-$(MODULE).ngd: $(MODULE).ngc $(UCF_FILE)
- ###
- #############################################################################
- ### translate
- ###
- echo "$$BMM" > $(BMM_FILE)
- cd $(BUILDDIR) ; ngdbuild -dd _ngo -nt timestamp -uc ../$(UCF_FILE) -bm ../$(BMM_FILE) -p $(DEVICE_DPS) -sd ../$(CORES) $(MODULE).ngc $(MODULE).ngd
-
-$(MODULE)_map.ncd: $(MODULE).ngd
- ###
- #############################################################################
- ### map
- ###
- @# explanation of map parameters:
- @# -p part number
- @# -mt multi-threading
- @# -w overwrite existing files
- @# -logic_opt logic optimization
- @# -ol overall effor level (std|high)
- @# -t placer cost table
- @# -xt extra placer cost table (0..5)
- @# -register_duplication duplicate registers
- @# -global_opt Global Optimization (off|speed|area|power)
- @# -ir ignore RLOCs
- @# -pr pack registers in IO (off|i|o|b)
- @# -lc lut combining (auto|area|off)
- @# -power Virtex 6 Power Optimization (on|off|high|xe)
- @# -detail Generate Detailed MAP Report
- @# -o Output File Name
- @# -bp enables block RAM mapping
- cd $(BUILDDIR) ; export XIL_MAP_NODRC; export XIL_PAR_DESIGN_CHECK_VERBOSE=1; export XIL_PAR_ALLOW_LVDS_LOC_OVERRIDE=1; map -p $(DEVICE_DPS) -mt 1 -w -logic_opt off -ol high -t 22 -xt 5 -register_duplication on -global_opt off -ir off -pr b -lc off -power off -detail -o $(MODULE)_map.ncd $(MODULE).ngd $(MODULE).pcf
-
-
-$(MODULE).ncd: $(MODULE)_map.ncd
- ###
- #############################################################################
- ### place & route
- ###
- @# -ol = Overall effort level. high is maximum effort.
- @# Default: high except Virtex-4 and Spartan-3 architectures
- @# std (standard) for older architectures
- @# -pl = Placer effort level. high is maximum effort. Overrides
- @# any placer effort level implied by "-ol" option.
- @# Default: high for Virtex-4 and Spartan-3 architectures
- @# Not supported for newer architectures.
- @# -rl = Router effort level. high is maximum effort. Overrides
- @# any router effort level implied by "-ol" option.
- @# Default: high for Virtex-4 and Spartan-3 architectures
- @# Not supported for newer architectures
- @# -xe = Extra effort level. c (Continue on Impossible) is maximum effort.
- @# Default: none
- @# -mt = Multi-threading enabled. 4 is the maximum number of threads.
- @# Default: off except Virtex-4 and Spartan-3 architectures
- @# Supported only for newer architectures.
- @# -t = Placer cost table entry. Start at this entry.
- @# Default: 1 for Virtex-4 and Spartan-3 architectures
- @# Not supported for newer architectures
- @# -p = Don't run the placer. (Keep current placement)
- @# -k = Re-entrant route. Keep the current placement. Continue the routing
- @# using the existing routing as a starting point.
- @# -r = Don't run the router.
- @# -w = Overwrite. Allows overwrite of an existing file (including input
- @# file). If specified output is a directory, allows files in
- @# directory to be overwritten.
- @# -f = Read par command line arguments and switches from file.
- @# -filter = Message Filter file name (for example "filter.filter"). If
- @# specified, the contents of this file will be used to filter messages
- @# from this application. The filter file can be created using Xreport.
- @# -smartguide = Enables SmartGuide using guidefile.ncd as the guide file.
- @# -x = Ignore user timing constraints in physical constraints file and
- @# generate timing constraints automatically for all internal clocks to
- @# increase performance. Note: the level of performance achieved will
- @# be dictated by the effort level (-ol std|high) chosen.
- @# -nopad = Turns off generation of the pad report.
- @# Default: Pad Report Generated
- @# -power = Power Aware Par. Optimizes the capacitance of non-timing-driven
- @# design signals.
- @# Default: off
- @# -activityfile <activityfile.vcd|saif> = Switching activity data file to
- @# guide power optimization. This option is only valid if the
- @# "-power on" option has been used.
- @# -intstyle = Indicate contextual information when invoking Xilinx applications
- @# within a flow or project environment.
- @# The mode "xflow" indicates that the program is being run as part of a
- @# batch flow. The mode "silent" indicates that no output will be
- @# displayed to the screen. The mode "ise" indicates that the program is being
- @# run as part of an integrated design environment.
- @# Default: Program is run as a standalone application.
- @# -ise = Use supplied ISE project repository file.
- @# -ntd = Ignore Timing constraints in physical constraints file and do NOT
- @# generate timing constraints automatically.
- @# <infile> = Name of input NCD file.
- @# <outfile> = Name of output NCD file or output directory.
- @# Use format "<outfile>.ncd" or "<outfile>.dir".
- @# <pcffile> = Name of physical constraints file.
- cd $(BUILDDIR) ; par -w -ol high $(MODULE)_map.ncd $(MODULE).ncd $(MODULE).pcf
-
-
-trace:
- cd $(BUILDDIR) ; trce -v 5 -u 100 -fastpaths -xml $(MODULE).twx -o $(MODULE).twr $(MODULE).ncd $(MODULE).pcf
-
-
-bitgen: $(MODULE).ncd
- ###
- #############################################################################
- ### generate bitfile
- ###
- echo "$$UT_FILE" > $(MODULE).ut
- cd $(BUILDDIR) ; bitgen -f ../$(MODULE).ut $(MODULE).ncd
-
-
-firmware: $(MODULE)_update.mcs $(MODULE)_update.bin
- mkdir -p firmware_$(DATE)
- cp Makefile firmware_$(DATE)
- cp $(MODULE)_update.bit firmware_$(DATE)
- cp $(MODULE)_update.bin firmware_$(DATE)
- cp $(MODULE)_update.mcs firmware_$(DATE)
- zip -r firmware_$(DATE) firmware_$(DATE)/*
-
diff --git a/mig_test/synthesis/top.ucf b/mig_test/synthesis/top.ucf
deleted file mode 100644
index 6223064..0000000
--- a/mig_test/synthesis/top.ucf
+++ /dev/null
@@ -1,312 +0,0 @@
-# voltage
-CONFIG VCCAUX = "2.5";
-
-
-## system stuff
-#125MHz clock
-NET CLK LOC = AA12 | IOSTANDARD = LVCMOS33;
-#NET RESET_N LOC = A4 | IOSTANDARD = LVCMOS33 | PULLDOWN;
-NET POWER_FAIL_N LOC = A2; # IO_L83P_3
-NET WATCHDOG LOC = V9 | IOSTANDARD = LVCMOS33; # WATCHDOG INPUT, IO_L50N_2
-
-## user clock
-NET user_clk LOC = Y13; # U12
-
-## DDR3 SDRAM
-NET MCB1_DRAM_A<0> LOC = F21 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_A<1> LOC = F22 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_A<2> LOC = E22 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_A<3> LOC = G20 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_A<4> LOC = F20 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_A<5> LOC = K20 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_A<6> LOC = K19 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_A<7> LOC = E20 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_A<8> LOC = C20 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_A<9> LOC = C22 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_A<10> LOC = G19 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_A<11> LOC = F19 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_A<12> LOC = D22 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_A<13> LOC = D19 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_A<14> LOC = D20 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_BA<0> LOC = J17 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_BA<1> LOC = K17 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_BA<2> LOC = H18 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_CAS_B LOC = H22 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_CKE LOC = D21 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_CK_N LOC = J19 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_CK_P LOC = H20 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQ<0> LOC = N20 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQ<1> LOC = N22 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQ<2> LOC = M21 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQ<3> LOC = M22 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQ<4> LOC = J20 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQ<5> LOC = J22 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQ<6> LOC = K21 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQ<7> LOC = K22 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQ<8> LOC = P21 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQ<9> LOC = P22 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQ<10> LOC = R20 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQ<11> LOC = R22 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQ<12> LOC = U20 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQ<13> LOC = U22 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQ<14> LOC = V21 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQ<15> LOC = V22 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_LDM LOC = L19 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQS_N<0> LOC = L22 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQS_P<0> LOC = L20 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_ODT LOC = G22 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_RAS_B LOC = H21 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_RESET_B LOC = F18 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_UDM LOC = M20 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQS_N<1> LOC = T22 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_DQS_P<1> LOC = T21 | IOSTANDARD = SSTL15_II;
-NET MCB1_DRAM_WE_B LOC = H19 | IOSTANDARD = SSTL15_II;
-#
-NET MCB3_DRAM_A<0> LOC = H2 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_A<1> LOC = H1 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_A<2> LOC = H5 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_A<3> LOC = K6 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_A<4> LOC = F3 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_A<5> LOC = K3 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_A<6> LOC = J4 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_A<7> LOC = H6 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_A<8> LOC = E3 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_A<9> LOC = E1 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_A<10> LOC = G4 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_A<11> LOC = C1 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_A<12> LOC = D1 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_A<13> LOC = G6 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_A<14> LOC = F5 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_BA<0> LOC = G3 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_BA<1> LOC = G1 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_BA<2> LOC = F1 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_CAS_B LOC = K4 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_CKE LOC = D2 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_CK_N LOC = H3 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_CK_P LOC = H4 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQ<0> LOC = N3 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQ<1> LOC = N1 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQ<2> LOC = M2 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQ<3> LOC = M1 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQ<4> LOC = J3 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQ<5> LOC = J1 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQ<6> LOC = K2 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQ<7> LOC = K1 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQ<8> LOC = P2 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQ<9> LOC = P1 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQ<10> LOC = R3 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQ<11> LOC = R1 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQ<12> LOC = U3 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQ<13> LOC = U1 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQ<14> LOC = V2 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQ<15> LOC = V1 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_LDM LOC = L4 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQS_N<0> LOC = L1 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQS_P<0> LOC = L3 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_ODT LOC = J6 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_RAS_B LOC = K5 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_RESET_B LOC = C3 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_UDM LOC = M3 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQS_N<1> LOC = T1 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_DQS_P<1> LOC = T2 | IOSTANDARD = SSTL15_II;
-NET MCB3_DRAM_WE_B LOC = F2 | IOSTANDARD = SSTL15_II;
-
-## Ethernet PHY
-#NET PHY_125 LOC = AA12; # used as clk
-NET PHY_MDIO LOC = AB3;
-NET PHY_MDC LOC = AA2 | IOSTANDARD = LVCMOS33;
-NET PHY_INT LOC = AB2;
-NET PHY_RESET_B LOC = T15 | IOSTANDARD = LVCMOS33;
-NET PHY_CRS LOC = T14;
-NET PHY_COL LOC = R13;
-NET PHY_TXEN LOC = AB16 | IOSTANDARD = LVCMOS33;
-NET PHY_TXCLK LOC = W12;
-NET PHY_TXER LOC = AB18 | IOSTANDARD = LVCMOS33;
-NET PHY_TXD<0> LOC = AA18 | IOSTANDARD = LVCMOS33;
-NET PHY_TXD<1> LOC = AB14 | IOSTANDARD = LVCMOS33;
-NET PHY_TXD<2> LOC = AA16 | IOSTANDARD = LVCMOS33;
-NET PHY_TXD<3> LOC = W14 | IOSTANDARD = LVCMOS33;
-NET PHY_TXD<4> LOC = T16 | IOSTANDARD = LVCMOS33;
-NET PHY_TXD<5> LOC = Y14 | IOSTANDARD = LVCMOS33;
-NET PHY_TXD<6> LOC = V15 | IOSTANDARD = LVCMOS33;
-NET PHY_TXD<7> LOC = AA14 | IOSTANDARD = LVCMOS33;
-NET PHY_GTXCLK LOC = R11 | IOSTANDARD = LVCMOS33;
-NET PHY_RXCLK LOC = Y11;
-NET PHY_RXER LOC = Y8;
-NET PHY_RXDV LOC = Y4;
-NET PHY_RXD<0> LOC = Y3;
-NET PHY_RXD<1> LOC = W8;
-NET PHY_RXD<2> LOC = W4;
-NET PHY_RXD<3> LOC = U9;
-NET PHY_RXD<4> LOC = V7;
-NET PHY_RXD<5> LOC = V5;
-NET PHY_RXD<6> LOC = W9;
-NET PHY_RXD<7> LOC = U6;
-
-## quad SPI Flash (W25Q64BV)
-NET SPI_FLASH_CSO_B LOC = T5 | IOSTANDARD = LVCMOS33;
-NET SPI_FLASH_CCLK LOC = Y21 | IOSTANDARD = LVCMOS33;
-NET SPI_FLASH_IO<0> LOC = AB20; # MOSI/di
-NET SPI_FLASH_IO<1> LOC = AA20; # MISO/do
-NET SPI_FLASH_IO<2> LOC = U14; # MISO2/wp_n
-NET SPI_FLASH_IO<3> LOC = U13; # MISO3/hold_n
-
-## EEPROM (48bit MAC address, DS2502-E48)
-NET MAC_DATA LOC = T11 | IOSTANDARD = LVCMOS33;
-
-## B2B J1 user IO
-NET B2B_B2_L57_N LOC = AB4;
-NET B2B_B2_L57_P LOC = AA4;
-NET B2B_B2_L49_N LOC = AB6;
-NET B2B_B2_L49_P LOC = AA6;
-#
-NET B2B_B2_L48_N LOC = AB7;
-NET B2B_B2_L48_P LOC = Y7;
-NET B2B_B2_L45_N LOC = AB8;
-NET B2B_B2_L45_P LOC = AA8;
-#
-NET B2B_B2_L43_N LOC = AB9;
-NET B2B_B2_L43_P LOC = Y9;
-NET B2B_B2_L41_N LOC = AB10;
-NET B2B_B2_L41_P LOC = AA10;
-#
-NET B2B_B2_L21_P LOC = Y15;
-NET B2B_B2_L21_N LOC = AB15;
-NET B2B_B2_L15_P LOC = Y17;
-NET B2B_B2_L15_N LOC = AB17;
-#
-NET B2B_B2_L31_N LOC = AB12; # single ended
-#
-NET B2B_B2_L32_N LOC = AB11; # single ended
-#
-NET B2B_B2_L60_P LOC = T7;
-NET B2B_B2_L60_N LOC = R7;
-NET B2B_B2_L59_N LOC = R8;
-NET B2B_B2_L59_P LOC = R9;
-#
-NET B2B_B2_L44_N LOC = Y10;
-NET B2B_B2_L44_P LOC = W10;
-NET B2B_B2_L42_N LOC = W11;
-NET B2B_B2_L42_P LOC = V11;
-#
-NET B2B_B2_L18_P LOC = V13;
-NET B2B_B2_L18_N LOC = W13;
-NET B2B_B2_L8_N LOC = U16;
-NET B2B_B2_L8_P LOC = U17;
-#
-NET B2B_B2_L11_P LOC = V17;
-NET B2B_B2_L11_N LOC = W17;
-NET B2B_B2_L6_P LOC = W18 | IOSTANDARD = LVCMOS33;
-NET B2B_B2_L6_N LOC = Y18;
-#
-NET B2B_B2_L5_P LOC = Y19;
-NET B2B_B2_L5_N LOC = AB19;
-NET B2B_B2_L9_N LOC = V18;
-NET B2B_B2_L9_P LOC = V19;
-#
-NET B2B_B2_L4_N LOC = T17;
-NET B2B_B2_L4_P LOC = T18;
-#
-NET B2B_B2_L29_N LOC = Y12; # single ended
-#
-NET B2B_B2_L10_N LOC = R15;
-NET B2B_B2_L10_P LOC = R16;
-NET B2B_B2_L2_N LOC = AB21;
-NET B2B_B2_L2_P LOC = AA21;
-
-
-## B2B J2 user IO
-NET B2B_B3_L60_N LOC = B1;
-NET B2B_B3_L60_P LOC = B2;
-#
-NET B2B_B3_L9_N LOC = T3 | IOSTANDARD = LVCMOS15;
-NET B2B_B3_L9_P LOC = T4 | IOSTANDARD = LVCMOS15;
-NET B2B_B0_L3_P LOC = D6;
-NET B2B_B0_L3_N LOC = C6;
-#
-NET B2B_B3_L59_P LOC = J7 | IOSTANDARD = LVCMOS15;
-NET B2B_B3_L59_N LOC = H8 | IOSTANDARD = LVCMOS15;
-NET B2B_B0_L32_P LOC = D7;
-NET B2B_B0_L32_N LOC = D8;
-#
-NET B2B_B0_L7_N LOC = C8;
-NET B2B_B0_L7_P LOC = D9;
-NET B2B_B0_L33_N LOC = C10;
-NET B2B_B0_L33_P LOC = D10;
-#
-NET B2B_B0_L36_P LOC = D11;
-NET B2B_B0_L36_N LOC = C12;
-NET B2B_B0_L49_P LOC = D14;
-NET B2B_B0_L49_N LOC = C14;
-#
-NET B2B_B0_L62_P LOC = D15;
-NET B2B_B0_L62_N LOC = C16;
-NET B2B_B0_L66_P LOC = E16;
-NET B2B_B0_L66_N LOC = D17;
-#
-NET B2B_B1_L10_P LOC = F16;
-NET B2B_B1_L10_N LOC = F17;
-NET B2B_B1_L9_P LOC = G16;
-NET B2B_B1_L9_N LOC = G17;
-#
-NET B2B_B1_L21_N LOC = J16;
-NET B2B_B1_L21_P LOC = K16;
-NET B2B_B1_L61_P LOC = L17;
-NET B2B_B1_L61_N LOC = K18;
-#
-NET B2B_B0_L1 LOC = A4; # used as reset_n
-#
-NET B2B_B0_L2_P LOC = C5;
-NET B2B_B0_L2_N LOC = A5;
-NET B2B_B0_L4_N LOC = A6;
-NET B2B_B0_L4_P LOC = B6;
-#
-NET B2B_B0_L5_N LOC = A7;
-NET B2B_B0_L5_P LOC = C7;
-NET B2B_B0_L6_N LOC = A8;
-NET B2B_B0_L6_P LOC = B8;
-#
-NET B2B_B0_L8_N LOC = A9;
-NET B2B_B0_L8_P LOC = C9;
-NET B2B_B0_L34_N LOC = A10;
-NET B2B_B0_L34_P LOC = B10;
-#
-NET B2B_B0_L35_N LOC = A11;
-NET B2B_B0_L35_P LOC = C11;
-NET B2B_B0_L37_N LOC = A12;
-NET B2B_B0_L37_P LOC = B12;
-#
-NET B2B_B0_L38_N LOC = A13;
-NET B2B_B0_L38_P LOC = C13;
-NET B2B_B0_L50_N LOC = A14;
-NET B2B_B0_L50_P LOC = B14;
-#
-NET B2B_B0_L51_N LOC = A15;
-NET B2B_B0_L51_P LOC = C15;
-NET B2B_B0_L63_N LOC = A16;
-NET B2B_B0_L63_P LOC = B16;
-#
-NET B2B_B0_L64_N LOC = A17;
-NET B2B_B0_L64_P LOC = C17;
-NET B2B_B0_L65_N LOC = A18;
-NET B2B_B0_L65_P LOC = B18;
-#
-NET B2B_B1_L20_P LOC = A20;
-NET B2B_B1_L20_N LOC = A21;
-NET B2B_B1_L19_P LOC = B21;
-NET B2B_B1_L19_N LOC = B22;
-NET B2B_B1_L59 LOC = P19;
-
-
-## misc
-NET USER_LED_N LOC = T20 | IOSTANDARD = LVCMOS15; # on board LED
-NET AV<0> LOC = U19 | PULLUP | TIG;
-NET AV<1> LOC = V20 | PULLUP | TIG;
-NET AV<2> LOC = M17 | PULLUP | TIG;
-NET AV<3> LOC = M18 | PULLUP | TIG;
-NET BR<0> LOC = P17 | PULLUP | TIG;
-NET BR<1> LOC = N16 | PULLUP | TIG;
-NET BR<2> LOC = P18 | PULLUP | TIG;
-NET BR<3> LOC = R19 | PULLUP | TIG;
-
-NET reprog_n LOC = H16 | IOSTANDARD = "LVCMOS15"; #REPROGRAMMING
diff --git a/mig_test/vhdl_files.txt b/mig_test/vhdl_files.txt
deleted file mode 100644
index a94534a..0000000
--- a/mig_test/vhdl_files.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-work rtl/top.vhd
-work rtl/box.vhd
-work rtl/timestamp.vhd
-work rtl_tb/top_tb.vhd
-
-grlib ../grlib/rtl/ahbctrl.vhd
-grlib ../grlib/rtl/amba.vhd
-grlib ../grlib/rtl/apbctrl.vhd
-grlib ../grlib/rtl/config.vhd
-grlib ../grlib/rtl/devices.vhd
-grlib ../grlib/rtl/stdlib.vhd
-grlib ../grlib/rtl/testlib.vhd
-grlib ../grlib/rtl/util.vhd
-grlib ../grlib/rtl/version.vhd
-grlib ../grlib/rtl_tb/stdio.vhd
-
-hzdr ../hzdr/rtl/devices_hzdr.vhd
-hzdr ../hzdr/rtl/component_package.vhd
-hzdr ../hzdr/rtl/debug_con_apb.vhd
-
-gaisler ../gaisler/rtl/ahbdpram.vhd
-gaisler ../gaisler/rtl/ahbram.vhd
-gaisler ../gaisler/rtl/apbuart.vhd
-gaisler ../gaisler/rtl/grgpio.vhd
-gaisler ../gaisler/rtl/uart.vhd
-gaisler ../gaisler/rtl/gptimer.vhd
-gaisler ../gaisler/rtl/misc.vhd
-gaisler ../gaisler/rtl/net.vhd
-gaisler ../gaisler/rtl/memctrl.vhd
-gaisler ../gaisler/rtl/memoryctrl.vhd
-gaisler ../gaisler/rtl_tb/sim.vhd
-gaisler ../gaisler/rtl/greth.vhd
-gaisler ../gaisler/rtl/ethernet_mac.vhd
-
-eth ../gaisler/rtl/greth_pkg.vhd
-eth ../gaisler/rtl/greth_rx.vhd
-eth ../gaisler/rtl/greth_tx.vhd
-eth ../gaisler/rtl/grethc.vhd
-eth ../gaisler/rtl/eth_ahb_mst.vhd
-eth ../gaisler/rtl/eth_rstgen.vhd
-eth ../gaisler/rtl/ethcomp.vhd
-
-techmap ../techmap/rtl/allmem.vhd
-techmap ../techmap/rtl/gencomp.vhd
-techmap ../techmap/rtl/memory_inferred.vhd
-techmap ../techmap/rtl/memory_unisim.vhd
-techmap ../techmap/rtl/syncram_2p.vhd
-techmap ../techmap/rtl/syncram_dp.vhd
-techmap ../techmap/rtl/syncrambw.vhd
-techmap ../techmap/rtl/syncram.vhd
-techmap ../techmap/rtl/netcomp.vhd
-
-zpu rtl/zpu_config.vhd
-zpu rtl/dualport_ram.vhd
-zpu ../zpu/rtl/dualport_ram_ahb_wrapper.vhd
-zpu ../zpu/rtl/zpu_ahb.vhd
-zpu ../zpu/rtl/zpu_bus_trace.vhd
-zpu ../zpu/rtl/zpu_core_medium.vhd
-zpu ../zpu/rtl/zpu_core_small.vhd
-zpu ../zpu/rtl/zpu_wrapper_package.vhd
-zpu ../zpu/rtl/zpupkg.vhd
-zpu ../zpu/rtl_tb/sim_small_fpga_top_noint.vhd
-zpu ../zpu/rtl_tb/txt_util.vhd
-
-
-# MIG example design
-work cores/mig_v3_61/example_design/rtl/example_top.vhd
-work cores/mig_v3_61/example_design/rtl/iodrp_controller.vhd
-work cores/mig_v3_61/example_design/rtl/iodrp_mcb_controller.vhd
-work cores/mig_v3_61/example_design/rtl/mcb_raw_wrapper.vhd
-work cores/mig_v3_61/example_design/rtl/mcb_soft_calibration.vhd
-work cores/mig_v3_61/example_design/rtl/mcb_soft_calibration_top.vhd
-work cores/mig_v3_61/example_design/rtl/memc1_infrastructure.vhd
-work cores/mig_v3_61/example_design/rtl/memc1_tb_top.vhd
-work cores/mig_v3_61/example_design/rtl/memc1_wrapper.vhd
-work cores/mig_v3_61/example_design/rtl/memc3_infrastructure.vhd
-work cores/mig_v3_61/example_design/rtl/memc3_tb_top.vhd
-work cores/mig_v3_61/example_design/rtl/memc3_wrapper.vhd
-work cores/mig_v3_61/example_design/rtl/traffic_gen/afifo.vhd
-work cores/mig_v3_61/example_design/rtl/traffic_gen/cmd_gen.vhd
-work cores/mig_v3_61/example_design/rtl/traffic_gen/cmd_prbs_gen.vhd
-work cores/mig_v3_61/example_design/rtl/traffic_gen/data_prbs_gen.vhd
-work cores/mig_v3_61/example_design/rtl/traffic_gen/init_mem_pattern_ctr.vhd
-work cores/mig_v3_61/example_design/rtl/traffic_gen/mcb_flow_control.vhd
-work cores/mig_v3_61/example_design/rtl/traffic_gen/mcb_traffic_gen.vhd
-work cores/mig_v3_61/example_design/rtl/traffic_gen/rd_data_gen.vhd
-work cores/mig_v3_61/example_design/rtl/traffic_gen/read_data_path.vhd
-work cores/mig_v3_61/example_design/rtl/traffic_gen/read_posted_fifo.vhd
-work cores/mig_v3_61/example_design/rtl/traffic_gen/sp6_data_gen.vhd
-work cores/mig_v3_61/example_design/rtl/traffic_gen/tg_status.vhd
-work cores/mig_v3_61/example_design/rtl/traffic_gen/v6_data_gen.vhd
-work cores/mig_v3_61/example_design/rtl/traffic_gen/wr_data_gen.vhd
-work cores/mig_v3_61/example_design/rtl/traffic_gen/write_data_path.vhd
OpenPOWER on IntegriCloud