OpenCores
URL https://opencores.org/ocsvn/xulalx25soc/xulalx25soc/trunk

Subversion Repositories xulalx25soc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /xulalx25soc/trunk
    from Rev 5 to Rev 6
    Reverse comparison

Rev 5 → Rev 6

/rtl/busmaster.v
115,7 → 115,7
wire w_interrupt;
// Oh, and the debug control for the ZIP CPU
wire wbu_zip_sel, zip_dbg_ack, zip_dbg_stall;
assign wbu_zip_sel =((wbu_cyc)&&(wbu_addr[31: 1]== 31'h083));
assign wbu_zip_sel =((wbu_cyc)&&(wbu_addr[24]);
wire [31:0] zip_dbg_data;
wbubus genbus(i_clk, i_rx_stb, i_rx_data,
wbu_cyc, wbu_stb, wbu_we, wbu_addr, wbu_data,
/doc/wishbone.html
0,0 → 1,89
<HTML><HEAD><TITLE>XuLA2 Wishbone Bus</TITLE></HEAD>
<BODY>
<h1 align=center>XuLA2 Wishbone Address Space</H1>
<TABLE align=center>
<TR><TH>Wishbone Address</TH><TH align=center>Words</TH><TH align=left>Usage</TH></TR>
<TR><TD align=right><TT>0_0000_0000_0000_0000_xxxx_xxxx</TT></TD><TH align=right>256</TH><TD>Undefined Memory (Bus Error)</TD></TR>
<TR><TD align=right><TT>0_0000_0000_0000_0001_0000_000x</TT></TD><TH align=right>1</TH><TD>(Reserved)</TD></TR>
<TR><TD align=right><TT>0_0000_0000_0000_0001_0000_0010</TT></TD><TH align=right>1</TH><TD>Version</TD></TR>
<TR><TD align=right><TT>0_0000_0000_0000_0001_0000_0011</TT></TD><TH align=right>1</TH><TD>JTAG Accessible Interrupt Controller</TD></TR>
<TR><TD align=right><TT>0_0000_0000_0000_0001_0000_0100</TT></TD><TH align=right>1</TH><TD>Bus Error (Includes errors induced from JTAG-wishbone controller)</TD></TR>
<TR><TD align=right><TT>0_0000_0000_0000_0001_0000_0101</TT></TD><TH align=right>1</TH><TD>RTC Date</TD></TR>
<TR><TD align=right><TT>0_0000_0000_0000_0001_0000_0110</TT></TD><TH align=right>1</TH><TD>GPIO control</TD></TR>
<TR><TD align=right><TT>0_0000_0000_0000_0001_0000_0111</TT></TD><TH align=right>1</TH><TD>UART Control word</TD></TR>
<TR><TD align=right><TT>0_0000_0000_0000_0001_0000_100x</TT></TD><TH align=right>2</TH><TD>PWM control</TD></TR>
<TR><TD align=right><TT>0_0000_0000_0000_0001_0000_1010</TT></TD><TH align=right>1</TH><TD>Receive UART RX value</TD></TR>
<TR><TD align=right><TT>0_0000_0000_0000_0001_0000_1011</TT></TD><TH align=right>1</TH><TD>Transmit UART port</TD></TR>
<TR><TD align=right><TT>0_0000_0000_0000_0001_0000_11xx</TT></TD><TH align=right>4</TH><TD>Flash Control Words</TD></TR>
<TR><TD align=right><TT>0_0000_0000_0000_0001_0001_0xxx</TT></TD><TH align=right>8</TH><TD>RTC Clock</TD></TR>
<TR><TD align=right><TT>0_0000_0000_0000_0001_0001_1yyx</TT></TD><TH align=right>2</TH><TD>Scope #Y (0..3)</TD></TR>
<TR><TD align=right><TT>0_0000_0000_0000_0001_0010_00xx</TT></TD><TH align=right>?</TH><TD>SD Card Control</TD></TR>
<TR><TD align=right><TT>0_0000_0000_0000_0001_01xx_xxxx</TT></TD><TH align=right>32</TH><TD>(ICAPE Access -- not yet proven)</TD></TR>
<TR><TD align=right><TT>0_0000_0000_001x_xxxx_xxxx_xxxx</TT></TD><TH align=right>8k</TH><TD>On Chip RAM</TD></TR>
<TR><TD align=right><TT>0_0000_01xx_xxxx_xxxx_xxxx_xxxx</TT></TD><TH align=right>256k</TH><TD>1 MB SPI Flash (256kW)</TD></TR>
<TR><TD align=right><TT>0_1rrr_rrrr_rrrr_rrbb_cccc_cccc</TT></TD><TH align=right>8M</TH><TD>32 MB SDRAM (8MW)</TD></TR>
<TR><TD align=right><TT>1_yyyy_yyyy_yyyy_yyyy_yyyy_yyyx</TT></TD><TH align=right>2</TH><TD>External Zip CPU control (y bits are don't cares, not accessible from ZipCPU)</TD></TR>
<!-- -->
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_xxxx</TT></TD><TH align=right>20</TH><TD>Zip System registers</TD></TR>
<!-- -->
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_0000</TT></TD><TH align=right>1</TH><TD>Zip Programmable Interrupt Controller</TD></TR>
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_0001</TT></TD><TH align=right>1</TH><TD>Watchdog Timer</TD></TR>
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_0010</TT></TD><TH align=right>1</TH><TD>Address of last bus error, as seen by the Zip CPU</TD></TR>
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_0011</TT></TD><TH align=right>1</TH><TD>Secondary Interrupt Controller</TD></TR>
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_0100</TT></TD><TH align=right>1</TH><TD>Timer A</TD></TR>
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_0101</TT></TD><TH align=right>1</TH><TD>Timer B</TD></TR>
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_0110</TT></TD><TH align=right>1</TH><TD>Timer C</TD></TR>
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_0111</TT></TD><TH align=right>1</TH><TD>Jiffies</TD></TR>
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_1000</TT></TD><TH align=right>1</TH><TD>Master Task Clock Counter</TD></TR>
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_1001</TT></TD><TH align=right>1</TH><TD>Master Stall Counter</TD></TR>
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_1010</TT></TD><TH align=right>1</TH><TD>Master Pre-Fetch Stall Counter</TD></TR>
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_1011</TT></TD><TH align=right>1</TH><TD>Master Instruction Counter</TD></TR>
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_1100</TT></TD><TH align=right>1</TH><TD>User Task Clock Counter</TD></TR>
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_1101</TT></TD><TH align=right>1</TH><TD>User Stall Counter</TD></TR>
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_1110</TT></TD><TH align=right>1</TH><TD>User Pre-Fetch Stall Counter</TD></TR>
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0000_1111</TT></TD><TH align=right>1</TH><TD>User Instruction Counter</TD></TR>
<TR><TD><TT>1100_0000_0000_0000_0000_0000_0001_00xx</TT></TD><TH align=right>1</TH><TD>DMA Controller</TD></TR>
</TABLE>
<h1 align=center>Primary (ZipSystem) Interrupt Controller Assignments</H1>
<TABLE align=center>
<TR><TD><TH align=right>0</TH><TD>DMA controller</TD></TR>
<TR><TD><TH align=right>1</TH><TD>Jiffies</TD></TR>
<TR><TD><TH align=right>2</TH><TD>Timer C</TD></TR>
<TR><TD><TH align=right>3</TH><TD>Timer B</TD></TR>
<TR><TD><TH align=right>4</TH><TD>Timer A</TD></TR>
<TR><TD><TH align=right>5</TH><TD>Secondary Interrupt Controller</TD></TR>
<TR><TD><TH align=right>6</TH><TD>JTAG Accessible Interrupt Controller</TD></TR>
<TR><TD><TH align=right>7</TH><TD>RTC Clock</TD></TR>
<TR><TD><TH align=right>8</TH><TD>SPI Flash</TD></TR>
<TR><TD><TH align=right>9</TH><TD>Scope</TD></TR>
<TR><TD><TH align=right>10</TH><TD>GPIO</TD></TR>
<TR><TD><TH align=right>11</TH><TD>PWM</TD></TR>
<TR><TD><TH align=right>12</TH><TD>RX UART data available (with FIFO, becomes non-empty RX FIFO not empty)</TD></TR>
<TR><TD><TH align=right>13</TH><TD>TX UART idle (with FIFO, becomes TX FIFO empty)</TD></TR>
<TR><TD><TH align=right>14</TH><TD>(Unused/reserved)</TD></TR>
</TABLE>
<h1 align=center>Secondary (ZipSystem) Interrupt Controller Assignments</H1>
<TABLE align=center>
<TR><TD><TH align=right>0</TH><TD>User Instruction Counter</TD></TR>
<TR><TD><TH align=right>1</TH><TD>User Prefetch stall counter</TD></TR>
<TR><TD><TH align=right>2</TH><TD>User stall counter</TD></TR>
<TR><TD><TH align=right>3</TH><TD>User task counter</TD></TR>
<TR><TD><TH align=right>4</TH><TD>Master instruction counter rollover</TD></TR>
<TR><TD><TH align=right>5</TH><TD>Master prefetch stall counter rollover</TD></TR>
<TR><TD><TH align=right>6</TH><TD>Master stall counter rollover</TD></TR>
<TR><TD><TH align=right>7</TH><TD>Master task counter rollover</TD></TR>
<TR><TD><TH align=right>8-14</TH><TD>(Unused / reserved)</TD></TR>
</TABLE>
<h1 align=center>JTAG Accessible Interrupt Controller Assignments</H1>
<TABLE align=center>
<TR><TD><TH align=right>0</TH><TD>Zip CPU Halted</TD></TR>
<TR><TD><TH align=right>1</TH><TD>RTC Clock</TD></TR>
<TR><TD><TH align=right>2</TH><TD>SPI Flash</TD></TR>
<TR><TD><TH align=right>3</TH><TD>Scope</TD></TR>
<TR><TD><TH align=right>4</TH><TD>GPIO</TD></TR>
<TR><TD><TH align=right>5</TH><TD>PWM</TD></TR>
<TR><TD><TH align=right>6</TH><TD>RX UART</TD></TR>
<TR><TD><TH align=right>7</TH><TD>TX UART</TD></TR>
<TR><TD><TH align=right>8-14</TH><TD>(Unused / reserved)</TD></TR>
</TABLE>
</BODY></HTML>
/xula.ucf
0,0 → 1,145
#**********************************************************************
# Copyright (c) 1997-2014 by XESS Corp <http://www.xess.com>.
# All rights reserved.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3.0 of the License, or (at your option) any later version.
#
# This library 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
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library. If not, see
# <http://www.gnu.org/licenses/>.
#**********************************************************************
 
NET i_clk_12mhz LOC = A9; # 12 MHz clock input.
 
##############################
# SDRAM
##############################
NET o_ram_cke LOC = J12;
NET o_ram_clk LOC = K11;
NET i_ram_feedback_clk LOC = K12;
NET o_ram_cs_n LOC = H4;
NET o_ram_ras_n LOC = L4;
NET o_ram_cas_n LOC = L3;
NET o_ram_we_n LOC = M3;
NET o_ram_ldqm LOC = M4;
NET o_ram_udqm LOC = L13;
NET o_ram_bs<0> LOC = H3;
NET o_ram_bs<1> LOC = G3;
NET o_ram_addr<0> LOC = E4;
NET o_ram_addr<1> LOC = E3;
NET o_ram_addr<2> LOC = D3;
NET o_ram_addr<3> LOC = C3;
NET o_ram_addr<4> LOC = B12;
NET o_ram_addr<5> LOC = A12;
NET o_ram_addr<6> LOC = D12;
NET o_ram_addr<7> LOC = E12;
NET o_ram_addr<8> LOC = G16;
NET o_ram_addr<9> LOC = G12;
NET o_ram_addr<10> LOC = F4;
NET o_ram_addr<11> LOC = G11;
NET o_ram_addr<12> LOC = H13;
NET io_ram_data<0> LOC = P6;
NET io_ram_data<1> LOC = T6;
NET io_ram_data<2> LOC = T5;
NET io_ram_data<3> LOC = P5;
NET io_ram_data<4> LOC = R5;
NET io_ram_data<5> LOC = N5;
NET io_ram_data<6> LOC = P4;
NET io_ram_data<7> LOC = N4;
NET io_ram_data<8> LOC = P12;
NET io_ram_data<9> LOC = R12;
NET io_ram_data<10> LOC = T13;
NET io_ram_data<11> LOC = T14;
NET io_ram_data<12> LOC = R14;
NET io_ram_data<13> LOC = T15;
NET io_ram_data<14> LOC = T12;
NET io_ram_data<15> LOC = P11;
 
##############################
# Flash
##############################
NET o_sd_cs_n LOC = T8;
NET o_sf_cs_n LOC = T3;
NET o_spi_sck LOC = R11;
NET o_spi_mosi LOC = T10;
NET i_spi_miso LOC = P10;
 
##############################
# Prototyping Header
##############################
# NET io_chan_clk LOC = T7; # L32N
NET i_rx_uart LOC = R7; # L32P
NET i_gpio<0> LOC = R15; # L49P
NET i_gpio<1> LOC = R16; # L49N
NET i_gpio<2> LOC = M15; # L46P
NET i_gpio<3> LOC = M16; # L46N
NET i_gpio<4> LOC = K15; # L44P
NET i_gpio<5> LOC = K16; # L44N
NET i_gpio<6> LOC = J16; # L43N
NET i_gpio<7> LOC = J14; # L43P
NET i_gpio<8> LOC = F15; # L35P
NET i_gpio<9> LOC = F16; # L35N
NET i_gpio<10> LOC = C16; # L33N
NET i_gpio<11> LOC = C15; # L33P
NET i_gpio<12> LOC = B16; # L29N
NET i_gpio<13> LOC = B15; # L29P
NET o_pwm LOC = T4; # L63N (No differential pair!)
NET o_tx_uart LOC = R2; # L32P
NET o_gpio<0> LOC = R1; # L32N
NET o_gpio<1> LOC = M2; # L35P
NET o_gpio<2> LOC = M1; # L35N
NET o_gpio<3> LOC = K3; # L42P
NET o_gpio<4> LOC = J4; # L42N
NET o_gpio<5> LOC = H1; # L39N
NET o_gpio<6> LOC = H2; # L39P
NET o_gpio<7> LOC = F1; # L41N
NET o_gpio<8> LOC = F2; # L41P
NET o_gpio<9> LOC = E1; # L46N
NET o_gpio<10> LOC = E2; # L46P
NET o_gpio<11> LOC = C1; # L50P
NET o_gpio<12> LOC = B1; # L50N
NET o_gpio<13> LOC = B2; # L52P
NET o_gpio<14> LOC = A2; # L52N
 
##############################
# I/O Drive
##############################
NET i_clk_12mhz IOSTANDARD = LVTTL;
NET o_ram_clk IOSTANDARD = LVTTL | SLEW=FAST | DRIVE=8;
NET i_ram_feedback_clk IOSTANDARD = LVTTL;
NET o_ram_cke IOSTANDARD = LVTTL;
NET o_ram_cs_n IOSTANDARD = LVTTL;
NET o_ram_addr* IOSTANDARD = LVTTL | SLEW=SLOW | DRIVE=6;
NET o_ram_bs* IOSTANDARD = LVTTL | SLEW=SLOW | DRIVE=6;
NET o_ram_ras_n IOSTANDARD = LVTTL | SLEW=SLOW | DRIVE=6;
NET o_ram_cas_n IOSTANDARD = LVTTL | SLEW=SLOW | DRIVE=6;
NET o_ram_we_n IOSTANDARD = LVTTL | SLEW=SLOW | DRIVE=6;
NET io_ram_data* IOSTANDARD = LVTTL | SLEW=SLOW | DRIVE=6;
NET o_ram_udqm IOSTANDARD = LVTTL | SLEW=SLOW | DRIVE=6;
NET o_ram_ldqm IOSTANDARD = LVTTL | SLEW=SLOW | DRIVE=6;
NET o_sd_cs_n IOSTANDARD = LVTTL;
NET o_sf_cs_n IOSTANDARD = LVTTL;
NET o_spi_sck IOSTANDARD = LVTTL;
NET o_spi_mosi IOSTANDARD = LVTTL;
NET i_gpio* IOSTANDARD = LVTTL;
NET o_gpio* IOSTANDARD = LVTTL;
NET o_pwm IOSTANDARD = LVTTL;
NET o_tx_uart IOSTANDARD = LVTTL;
NET i_rx_uart IOSTANDARD = LVTTL;
 
##############################
# Clock Nets
##############################
NET "i_clk_12mhz" TNM_NET = "i_clk_12mhz";
NET "i_ram_feedback_clk" TNM_NET = "i_ram_feedback_clk";
TIMESPEC "TSi_clk_12mhz" = PERIOD "i_clk_12mhz" 83.333333 ns HIGH 50%;
# TIMESPEC "TSi_ram_feedback_clk" = PERIOD "i_ram_feedback_clk" 10.0 ns HIGH 50%;
TIMESPEC "TSi_ram_feedback_clk" = PERIOD "i_ram_feedback_clk" 11.3 ns HIGH 50%;
/xilinx/Makefile
0,0 → 1,112
################################################################################
##
## Filename: Makefile
##
## Project: XuLA2 board
##
## Purpose: In case you don't want to fire up ISE, this Makefile attempts
## to coordinate the build process without it. While it works in
## testing, there are some problems to this approach. The first is that
## if you bust timing, you may never know it--nothing will tell you it
## failed. Second, the output file is different from the output file
## produced via ISE. Still ... for a command line make script, it is a
## (good) start.
##
##
## Creator: Dan Gisselquist, Ph.D.
## Gisselquist Technology, LLC
##
################################################################################
##
## Copyright (C) 2015, Gisselquist Technology, LLC
##
## This program is free software (firmware): 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 3 of the License, or (at
## your option) any later version.
##
## This program is distributed in the hope that it will be useful, but WITHOUT
## ANY WARRANTY; without even the implied warranty of MERCHANTIBILITY or
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
## for more details.
##
## License: GPL, v3, as defined and found on www.gnu.org,
## http:##www.gnu.org/licenses/gpl.html
##
##
################################################################################
##
##
DIR_SPACES := $(subst /, ,$(CURDIR))
DIR_NAME := $(word $(words $(DIR_SPACES)), $(DIR_SPACES))
PROJECT := xula
BRD := lx25
PART := xc6s$(BRD)-ftg256-2
OBJDIR := obj-xilinx
UCFFILE := ../xula.ucf
ifeq ($(shell uname),Linux)
MKDIR:=mkdir
else
MKDIR:=gmkdir
endif
SRCDIR := ../rtl
CPUDIR := ../rtl/cpu
JTAGBUS := wbufifo.v wbubus.v wbucompactlines.v wbucompress.v \
wbudecompress.v wbudeword.v wbuexec.v wbuidleint.v wbuinput.v \
wbuoutput.v wbureadcw.v wbusixchar.v wbutohex.v
PERIPHERALS: wbgpio.v wbpwmaudio.v rxuart.v txuart.v rtcdate.v rtclight.v
CPUSRC := zipsystem.v \
busdelay.v wbarbiter.v wbdblpriarb.v \
zipcpu.v cpuops.v pfcache.v idecode.v pipemem.v pipefetch.v div.v \
zipcounter.v zipjiffies.v ziptimer.v wbdmac.v wbwatchdog.v
SOURCES := toplevel.v jtagser.v busmaster.v \
ioslave.v memdev.v hexmap.v icontrol.v builddate.v \
wbspiflash.v lldspi.v \
wbsdramng.v wbscope.v wbscopc.v $(JTAGBUS)
 
RTLFILES := $(addprefix $(SRCDIR)/,$(SOURCES)) $(addprefix $(CPUDIR)/,$(CPUSRC))
 
 
all: objdir xula.bit
 
.PHONY: objdir
objdir:
@bash -c "if [ ! -e $(OBJDIR)/ ]; then $(MKDIR) -p $(OBJDIR)/; fi"
 
$(OBJDIR)/$(PROJECT).ngc: $(RTLFILES) $(PROJECT).xst
$(MKDIR) -p xst/projnav.tmp/
xst -intstyle ise -ifn $(PROJECT).xst -ofn $(OBJDIR)/$(PROJECT).syr
mv $(PROJECT).ngc $(OBJDIR)/$(PROJECT).ngc
mv $(PROJECT).ngr $(OBJDIR)/$(PROJECT).ngr
 
$(OBJDIR)/$(PROJECT).ngd: $(OBJDIR)/$(PROJECT).ngc
ngdbuild -intstyle ise -dd _ngo -nt timestamp \
-uc $(UCFFILE) -p $(PART) $(OBJDIR)/$(PROJECT).ngc $(OBJDIR)/$(PROJECT).ngd
 
PRVMAPOPTS := -w -detail -ir off -ignore_keep_hierarchy -pr b -timing \
-ol high -logic_opt on
MAPOPTS := -w -detail -logic_opt on -ol high -xe n -t 1 -xt 0 -r 4 \
-global_opt speed -equivalent_register_removal on -mt 2 -detail \
-ir off -ignore_keep_hierarchy -pr off -lc off -power xe
$(OBJDIR)/$(PROJECT).ncd: $(OBJDIR)/$(PROJECT).ngd
map -intstyle ise -p $(PART) $(MAPOPTS) \
-o $(OBJDIR)/$(PROJECT)_map.ncd $(OBJDIR)/$(PROJECT).ngd $(OBJDIR)/$(PROJECT).pcf
 
$(OBJDIR)/$(PROJECT).ncd: $(OBJDIR)/$(PROJECT)_map.ncd
par -w -intstyle ise -ol high -mt 4 $(OBJDIR)/$(PROJECT)_map.ncd $(OBJDIR)/$(PROJECT).ncd $(OBJDIR)/$(PROJECT).pcf
 
$(PROJECT).bit: $(OBJDIR)/$(PROJECT).ncd
bitgen -f $(PROJECT).ut $(OBJDIR)/$(PROJECT).ncd $(PROJECT).bit
 
timing: $(OBJDIR)/$(PROJECT).ncd $(OBJDIR)/$(PROJECT).pcf
trce -v 3 -s 2 -n 3 -fastpaths -xml $(OBJDIR)/$(PROJECT).twx -o $(OBJDIR)/$(PROJECT).ncd -o $(OBJDIR)/$(PROJECT).twr $(OBJDIR)/$(PROJECT).pcf
 
.PHONY: clean
clean:
@-rm -rf $(OBJDIR)
@-rm -f *.ngc *.ngd *.ncd *.pcf *.lso *.ngr *.bgn *.bld *.cmd_log
@-rm -f *.drc *.gise *.map *.mrp *.ngm *.syr *.xwbt *.xrpt
@-rm -f *.pad *.par *.psr *.ptwx *.unroutes *.xpi *.csv *.xml
@-rm -f *.html *.xrpt *.log *.stx *.tcl *.txt *.twr *.twx
@-rm -rf _ngo _xmsgs xlnx_* ipcore_dir iseconfig templates xst
@echo "All cleaned up"
/Makefile
0,0 → 1,50
.PHONY: all
all: datestamp verilated bit
# Could also depend upon load, if desired, but not necessary
BENCH := `find bench -name Makefile` `find bench -name "*.cpp"` `find bench -name "*.h"`
RTL := `find rtl -name "*.v"` `find rtl -name Makefile`
NOTES := `find . -name "*.txt"` `find . -name "*.html"`
SW := `find sw -name "*.cpp"` `find sw -name "*.h"` \
`find sw -name "*.sh"` `find sw -name "*.py"` \
`find sw -name "*.pl"` `find sw -name Makefile`
PROJ := xilinx/xula.prj xilinx/xula.xise xilinx/xula.xst \
xilinx/xula.ut xilinx/Makefile
BIN := `find xilinx -name "*.bit"`
CONSTRAINTS := xula.ucf
YYMMDD:=`date +%Y%m%d`
 
datestamp: $(YYMMDD)-build.v
$(YYMMDD)-build.v:
-rm -rf 2*-build.v
perl xilinx/mkdatev.pl > $(YYMMDD)-build.v
cd rtl; ln -fs ../$(YYMMDD)-build.v builddate.v
 
.PHONY: archive
archive:
tar --transform s,^,$(YYMMDD)-xula/, -chjf $(YYMMDD)-xula.tjz $(BENCH) $(SW) $(RTL) $(NOTES) $(PROJ) $(BIN) $(CONSTRAINTS)
 
.PHONY: tare
tare:
echo tar --transform s,^,$(YYMMDD)-xula/, -chjf $(YYMMDD)-xula.tjz $(BENCH) $(SW) $(RTL) $(NOTES) $(PROJ) $(BIN) $(CONSTRAINTS)
 
.PHONY: verilated
verilated:
cd rtl ; make
 
.PHONY: bit
bit:
cd xilinx ; make xula.bit
 
.PHONY: load
load: bit
xsload -b xula2-lx25 --fpga xilinx/xula.bit
.PHONY: xload
xload:
xsload -b xula2-lx25 --fpga xilinx/toplevel.bit
 
.PHONY: timing
timing:
cd xilinx ; make timing
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.