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

Subversion Repositories ha1588

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /ha1588
    from Rev 72 to Rev 73
    Reverse comparison

Rev 72 → Rev 73

/trunk/rtl/bus/xps/pcores/ha1588_axi_v1_00_a/hdl/verilog/ha1588_axi.v
26,7 → 26,7
 
// Register Slave Interface Write Response Ports
output wire [2-1:0] S_AXI_REG_BRESP,
output wire S_AXI_REG_BVALID,
output reg S_AXI_REG_BVALID,
input wire S_AXI_REG_BREADY,
 
// Register Slave Interface Read Address Ports
78,7 → 78,10
assign S_AXI_REG_AWREADY = 1'b1;
assign S_AXI_REG_WREADY = 1'b1;
assign S_AXI_REG_BRESP = 2'b00;
assign S_AXI_REG_BVALID = S_AXI_REG_WVALID;
always @(negedge S_AXI_REG_ARESETN or posedge S_AXI_REG_ACLK) begin
if (!S_AXI_REG_ARESETN) S_AXI_REG_BVALID <= 1'b0;
else S_AXI_REG_BVALID <= S_AXI_REG_WVALID;
end
assign S_AXI_REG_ARREADY = 1'b1;
assign S_AXI_REG_RDATA = up_data_rd;
assign S_AXI_REG_RRESP = 2'b00;
/trunk/rtl/reg/reg.v
125,7 → 125,7
wire cs_7c = (addr_in[7:2]==const_7c[7:2])? 1'b1: 1'b0;
 
reg [31:0] reg_00; // ctrl 5 bit
reg [31:0] reg_04; // null
reg [31:0] reg_04; // scratch reg
reg [31:0] reg_08; // null
reg [31:0] reg_0c; // null
reg [31:0] reg_10; // time 16 bit s
208,7 → 208,7
always @(posedge clk) begin
// register mapping: RTC
if (rd_in && cs_00) data_out_reg <= {27'd0, reg_00[ 4: 2], adj_ld_done_in, time_ok};
if (rd_in && cs_04) data_out_reg <= 32'd0;
if (rd_in && cs_04) data_out_reg <= reg_04;
if (rd_in && cs_08) data_out_reg <= 32'd0;
if (rd_in && cs_0c) data_out_reg <= 32'd0;
if (rd_in && cs_10) data_out_reg <= {16'd0, time_reg_sec_int[47:32]};
/trunk/par/xilinx/ReadMe.txt
0,0 → 1,2
1. Double click ha1588.ppr to open the PlanAhead IDE.
2. Run "source ha1588.tcl" to setup the project.
/trunk/sys/altera/cleanup.sh
0,0 → 1,2
rm -rf db incremental_db output .qsys_edit
rm -f *.qdf
/trunk/sys/altera/system.qsys
0,0 → 1,213
<?xml version="1.0" encoding="UTF-8"?>
<system name="$${FILENAME}">
<component
name="$${FILENAME}"
displayName="$${FILENAME}"
version="1.0"
description=""
tags=""
categories="System" />
<parameter name="bonusData"><![CDATA[bonusData
{
element $${FILENAME}
{
}
element clk_0
{
datum _sortIndex
{
value = "0";
type = "int";
}
}
element ha1588_avl_0
{
datum _sortIndex
{
value = "1";
type = "int";
}
}
element mgc_axi4_inline_monitor_0
{
datum _sortIndex
{
value = "4";
type = "int";
}
}
element mgc_axi4_master_0
{
datum _sortIndex
{
value = "2";
type = "int";
}
}
element mgc_axi4_slave_0
{
datum _sortIndex
{
value = "3";
type = "int";
}
}
element ha1588_avl_0.reg_interface
{
datum baseAddress
{
value = "65536";
type = "String";
}
}
}
]]></parameter>
<parameter name="clockCrossingAdapter" value="HANDSHAKE" />
<parameter name="device" value="5CSEBA5U19A7" />
<parameter name="deviceFamily" value="Cyclone V" />
<parameter name="deviceSpeedGrade" value="7" />
<parameter name="fabricMode" value="QSYS" />
<parameter name="generateLegacySim" value="false" />
<parameter name="generationId" value="0" />
<parameter name="globalResetBus" value="false" />
<parameter name="hdlLanguage" value="VERILOG" />
<parameter name="maxAdditionalLatency" value="1" />
<parameter name="projectName" value="system.qpf" />
<parameter name="sopcBorderPoints" value="false" />
<parameter name="systemHash" value="1" />
<parameter name="timeStamp" value="1360206312732" />
<parameter name="useTestBenchNamingPattern" value="false" />
<instanceScript></instanceScript>
<interface name="clk" internal="clk_0.clk_in" type="clock" dir="end" />
<interface
name="ha1588_avl_0_rtc_interface"
internal="ha1588_avl_0.rtc_interface"
type="conduit"
dir="end" />
<interface
name="ha1588_avl_0_tsu_interface"
internal="ha1588_avl_0.tsu_interface"
type="conduit"
dir="end" />
<interface
name="clk_0_clk_in_reset"
internal="clk_0.clk_in_reset"
type="reset"
dir="end" />
<module kind="clock_source" version="12.1" enabled="1" name="clk_0">
<parameter name="clockFrequency" value="50000000" />
<parameter name="clockFrequencyKnown" value="true" />
<parameter name="inputClockFrequency" value="0" />
<parameter name="resetSynchronousEdges" value="NONE" />
</module>
<module kind="ha1588_avl" version="1.0" enabled="1" name="ha1588_avl_0">
<parameter name="addr_is_in_word" value="true" />
<parameter name="AUTO_CLOCK_CLOCK_RATE" value="50000000" />
</module>
<module
kind="mgc_axi4_master"
version="10.1.3.1"
enabled="1"
name="mgc_axi4_master_0">
<parameter name="AXI4_ADDRESS_WIDTH" value="32" />
<parameter name="AXI4_RDATA_WIDTH" value="32" />
<parameter name="AXI4_WDATA_WIDTH" value="32" />
<parameter name="AXI4_ID_WIDTH" value="8" />
<parameter name="AXI4_USER_WIDTH" value="8" />
<parameter name="AXI4_REGION_MAP_SIZE" value="16" />
<parameter name="index" value="0" />
<parameter name="AUTO_CLOCK_SINK_CLOCK_RATE" value="50000000" />
</module>
<module
kind="mgc_axi4_inline_monitor"
version="10.1.3.1"
enabled="1"
name="mgc_axi4_inline_monitor_0">
<parameter name="AXI4_ADDRESS_WIDTH" value="32" />
<parameter name="AXI4_RDATA_WIDTH" value="32" />
<parameter name="AXI4_WDATA_WIDTH" value="32" />
<parameter name="AXI4_ID_WIDTH" value="8" />
<parameter name="AXI4_USER_WIDTH" value="8" />
<parameter name="AXI4_REGION_MAP_SIZE" value="16" />
<parameter name="index" value="0" />
<parameter name="AUTO_CLOCK_SINK_CLOCK_RATE" value="50000000" />
</module>
<module
kind="mgc_axi4_slave"
version="10.1.3.1"
enabled="1"
name="mgc_axi4_slave_0">
<parameter name="AXI4_ADDRESS_WIDTH" value="16" />
<parameter name="AXI4_RDATA_WIDTH" value="1024" />
<parameter name="AXI4_WDATA_WIDTH" value="1024" />
<parameter name="AXI4_ID_WIDTH" value="18" />
<parameter name="AXI4_USER_WIDTH" value="8" />
<parameter name="AXI4_REGION_MAP_SIZE" value="16" />
<parameter name="index" value="0" />
<parameter name="AUTO_CLOCK_SINK_CLOCK_RATE" value="50000000" />
</module>
<connection
kind="clock"
version="12.1"
start="clk_0.clk"
end="ha1588_avl_0.clock" />
<connection
kind="reset"
version="12.1"
start="clk_0.clk_reset"
end="ha1588_avl_0.clock_reset" />
<connection
kind="avalon"
version="12.1"
start="mgc_axi4_master_0.altera_axi4_master"
end="ha1588_avl_0.reg_interface">
<parameter name="arbitrationPriority" value="1" />
<parameter name="baseAddress" value="0x00010000" />
</connection>
<connection
kind="clock"
version="12.1"
start="clk_0.clk"
end="mgc_axi4_master_0.clock_sink" />
<connection
kind="reset"
version="12.1"
start="clk_0.clk_reset"
end="mgc_axi4_master_0.reset_sink" />
<connection
kind="clock"
version="12.1"
start="clk_0.clk"
end="mgc_axi4_inline_monitor_0.clock_sink" />
<connection
kind="reset"
version="12.1"
start="clk_0.clk_reset"
end="mgc_axi4_inline_monitor_0.reset_sink" />
<connection
kind="avalon"
version="12.1"
start="mgc_axi4_inline_monitor_0.altera_axi4_master"
end="ha1588_avl_0.reg_interface">
<parameter name="arbitrationPriority" value="1" />
<parameter name="baseAddress" value="0x00010000" />
</connection>
<connection
kind="clock"
version="12.1"
start="clk_0.clk"
end="mgc_axi4_slave_0.clock_sink" />
<connection
kind="reset"
version="12.1"
start="clk_0.clk_reset"
end="mgc_axi4_slave_0.reset_sink" />
<connection
kind="avalon"
version="12.1"
start="mgc_axi4_master_0.altera_axi4_master"
end="mgc_axi4_slave_0.altera_axi4_slave">
<parameter name="arbitrationPriority" value="1" />
<parameter name="baseAddress" value="0x0000" />
</connection>
</system>
/trunk/sys/altera/system.qpf
0,0 → 1,30
# -------------------------------------------------------------------------- #
#
# Copyright (C) 1991-2012 Altera Corporation
# Your use of Altera Corporation's design tools, logic functions
# and other software and tools, and its AMPP partner logic
# functions, and any output files from any of the foregoing
# (including device programming or simulation files), and any
# associated documentation or information are expressly subject
# to the terms and conditions of the Altera Program License
# Subscription Agreement, Altera MegaCore Function License
# Agreement, or other applicable license agreement, including,
# without limitation, that your use is for the sole purpose of
# programming logic devices manufactured by Altera and sold by
# Altera or its authorized distributors. Please refer to the
# applicable agreement for further details.
#
# -------------------------------------------------------------------------- #
#
# Quartus II 32-bit
# Version 12.1 Build 177 11/07/2012 SJ Web Edition
# Date created = 15:58:54 February 03, 2013
#
# -------------------------------------------------------------------------- #
 
QUARTUS_VERSION = "12.1"
DATE = "15:58:54 February 03, 2013"
 
# Revisions
 
PROJECT_REVISION = "system"
/trunk/sys/altera/ReadMe.txt
0,0 → 1,2
Need to add IP Search Path first:
In Tool->Options->IP Search Path, add ../../rtl/bus/qsys/.
/trunk/sys/altera/system.qsf
0,0 → 1,49
# -------------------------------------------------------------------------- #
#
# Copyright (C) 1991-2012 Altera Corporation
# Your use of Altera Corporation's design tools, logic functions
# and other software and tools, and its AMPP partner logic
# functions, and any output files from any of the foregoing
# (including device programming or simulation files), and any
# associated documentation or information are expressly subject
# to the terms and conditions of the Altera Program License
# Subscription Agreement, Altera MegaCore Function License
# Agreement, or other applicable license agreement, including,
# without limitation, that your use is for the sole purpose of
# programming logic devices manufactured by Altera and sold by
# Altera or its authorized distributors. Please refer to the
# applicable agreement for further details.
#
# -------------------------------------------------------------------------- #
#
# Quartus II 32-bit
# Version 12.1 Build 177 11/07/2012 SJ Web Edition
# Date created = 15:58:54 February 03, 2013
#
# -------------------------------------------------------------------------- #
#
# Notes:
#
# 1) The default values for assignments are stored in the file:
# system_assignment_defaults.qdf
# If this file doesn't exist, see file:
# assignment_defaults.qdf
#
# 2) Altera recommends that you do not modify this file. This
# file is updated automatically by the Quartus II software
# and any changes you make may be lost or overwritten.
#
# -------------------------------------------------------------------------- #
 
 
set_global_assignment -name FAMILY "Cyclone V"
set_global_assignment -name DEVICE 5CSEBA5U19A7
set_global_assignment -name TOP_LEVEL_ENTITY system
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 12.1
set_global_assignment -name PROJECT_CREATION_TIME_DATE "15:58:54 FEBRUARY 03, 2013"
set_global_assignment -name LAST_QUARTUS_VERSION "13.0 SP1"
set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
/trunk/sys/altera/cleanup.bat
0,0 → 1,2
rmdir /S /Q db incremental_db output .qsys_edit
del *.qws *.qdf
/trunk/sys/xilinx/system.sim.bat
0,0 → 1,12
rem build simulation project
simgen -p xc7z020clg484-2 -lang verilog -intstyle default -lp ../../sys/xilinx/../../ -lp ../../rtl/bus -msg simrun.lst -s isim -m behavioral ../../sys/xilinx/system.mhs -od .
 
rem compile and elaborate compiled models
vlogcomp -work work ../../sys/xilinx/system.tb.v -i ../../sys/xilinx/
fuse -incremental work.system_tb work.glbl -prj simulation/behavioral/system.prj -L xilinxcorelib_ver -L secureip -L unisims_ver -L unimacro_ver -o system.exe
 
rem run simulation
system.exe -gui -tclbatch simulation/behavioral/system_setup.tcl
 
pause
 
/trunk/sys/xilinx/cleanup.sh
0,0 → 1,3
rm -f -r etc hdl synthesis implementation simulation __xps data isim
rm -f *.log *.opt *.cmd *.make *.bxml *.bmm *.mss *.xmsgs *.wdb *.exe
 
/trunk/sys/xilinx/system.sim.sh
0,0 → 1,10
# build simulation project
simgen -p xc7z020clg484-2 -lang verilog -intstyle default -lp ../../sys/xilinx/../../ -lp ../../rtl/bus -msg simrun.lst -s isim -m behavioral ../../sys/xilinx/system.mhs -od .
 
# compile and elaborate compiled models
vlogcomp -work work ../../sys/xilinx/system.tb.v -i ../../sys/xilinx/
fuse -incremental work.system_tb work.glbl -prj simulation/behavioral/system.prj -L xilinxcorelib_ver -L secureip -L unisims_ver -L unimacro_ver -o system.exe
 
# run simulation
system.exe -gui -tclbatch simulation/behavioral/system_setup.tcl
 
/trunk/sys/xilinx/system.xmp
0,0 → 1,29
#Please do not modify this file by hand
XmpVersion: 14.3
VerMgmt: 14.3
IntStyle: default
Flow: ise
ModuleSearchPath: ../../rtl/bus/xps/pcores/ha1588_axi_v1_00_a/../../../
ModuleSearchPath: ../../
MHS File: system.mhs
Architecture: zynq
Device: xc7z020
Package: clg400
SpeedGrade: -2
UserCmd1:
UserCmd1Type: 0
UserCmd2:
UserCmd2Type: 0
GenSimTB: 0
SdkExportBmmBit: 1
SdkExportDir: SDK/SDK_Export
InsertNoPads: 0
WarnForEAArch: 1
HdlLang: Verilog
SimModel: BEHAVIORAL
ExternalMemSim: 0
UcfFile: data/system.ucf
EnableParTimingError: 1
ShowLicenseDialog: 1
BInfo:
LockAddr: ha1588_axi_0,C_S_AXI_REG_RNG00_BASEADDR
/trunk/sys/xilinx/system.wcfg
0,0 → 1,162
<?xml version="1.0" encoding="UTF-8"?>
<wave_config>
<wave_state>
</wave_state>
<db_ref_list>
<db_ref path="./isim.wdb" id="1" type="auto">
<top_modules>
<top_module name="glbl" />
<top_module name="system_tb" />
</top_modules>
</db_ref>
</db_ref_list>
<WVObjectSize size="33" />
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/ha1588_axi_0/ha1588_inst/rst" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">rst</obj_property>
<obj_property name="ObjectShortName">rst</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/ha1588_axi_0/ha1588_inst/clk" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">clk</obj_property>
<obj_property name="ObjectShortName">clk</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/ha1588_axi_0/ha1588_inst/wr_in" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">wr_in</obj_property>
<obj_property name="ObjectShortName">wr_in</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/ha1588_axi_0/ha1588_inst/rd_in" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">rd_in</obj_property>
<obj_property name="ObjectShortName">rd_in</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/ha1588_axi_0/ha1588_inst/addr_in" type="array" db_ref_id="1">
<obj_property name="ElementShortName">addr_in[7:0]</obj_property>
<obj_property name="ObjectShortName">addr_in[7:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/ha1588_axi_0/ha1588_inst/data_in" type="array" db_ref_id="1">
<obj_property name="ElementShortName">data_in[31:0]</obj_property>
<obj_property name="ObjectShortName">data_in[31:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/ha1588_axi_0/ha1588_inst/data_out" type="array" db_ref_id="1">
<obj_property name="ElementShortName">data_out[31:0]</obj_property>
<obj_property name="ObjectShortName">data_out[31:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="divider32" type="divider">
<obj_property name="label">system_tb</obj_property>
<obj_property name="DisplayName">label</obj_property>
<obj_property name="BkColor">128 128 255</obj_property>
<obj_property name="TextColor">230 230 230</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/INTR" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">INTR</obj_property>
<obj_property name="ObjectShortName">INTR</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/CLK" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">CLK</obj_property>
<obj_property name="ObjectShortName">CLK</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/RST_N" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">RST_N</obj_property>
<obj_property name="ObjectShortName">RST_N</obj_property>
</wvobject>
<wvobject fp_name="divider33" type="divider">
<obj_property name="label">wrapper_axi</obj_property>
<obj_property name="DisplayName">label</obj_property>
<obj_property name="BkColor">128 128 255</obj_property>
<obj_property name="TextColor">230 230 230</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_ACLK" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_ACLK</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_ACLK</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_ARESETN" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_ARESETN</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_ARESETN</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_AWADDR" type="array" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_AWADDR[31:0]</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_AWADDR[31:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_AWPROT" type="array" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_AWPROT[2:0]</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_AWPROT[2:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_AWVALID" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_AWVALID</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_AWVALID</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_AWREADY" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_AWREADY</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_AWREADY</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_WDATA" type="array" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_WDATA[31:0]</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_WDATA[31:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_WSTRB" type="array" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_WSTRB[3:0]</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_WSTRB[3:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_WVALID" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_WVALID</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_WVALID</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_WREADY" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_WREADY</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_WREADY</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_BRESP" type="array" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_BRESP[1:0]</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_BRESP[1:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_BVALID" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_BVALID</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_BVALID</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_BREADY" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_BREADY</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_BREADY</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_ARADDR" type="array" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_ARADDR[31:0]</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_ARADDR[31:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_ARPROT" type="array" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_ARPROT[2:0]</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_ARPROT[2:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_ARVALID" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_ARVALID</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_ARVALID</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_ARREADY" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_ARREADY</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_ARREADY</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_RDATA" type="array" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_RDATA[31:0]</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_RDATA[31:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_RRESP" type="array" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_RRESP[1:0]</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_RRESP[1:0]</obj_property>
<obj_property name="Radix">HEXRADIX</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_RVALID" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_RVALID</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_RVALID</obj_property>
</wvobject>
<wvobject fp_name="/system_tb/dut/ha1588_axi_0/S_AXI_REG_RREADY" type="logic" db_ref_id="1">
<obj_property name="ElementShortName">S_AXI_REG_RREADY</obj_property>
<obj_property name="ObjectShortName">S_AXI_REG_RREADY</obj_property>
</wvobject>
</wave_config>
/trunk/sys/xilinx/system.mhs
0,0 → 1,59
 
PARAMETER VERSION = 2.1.0
 
 
PORT ha1588_axi_0_rx_gmii_data_pin = ha1588_axi_0_rx_gmii_data, DIR = I, VEC = [7:0]
PORT ha1588_axi_0_rtc_time_ptp_ns_pin = ha1588_axi_0_rtc_time_ptp_ns, DIR = O, VEC = [31:0]
PORT ha1588_axi_0_tx_giga_mode_pin = ha1588_axi_0_tx_giga_mode, DIR = I
PORT ha1588_axi_0_rx_giga_mode_pin = ha1588_axi_0_rx_giga_mode, DIR = I
PORT ha1588_axi_0_rtc_time_one_pps_pin = ha1588_axi_0_rtc_time_one_pps, DIR = O
PORT ha1588_axi_0_tx_gmii_clk_pin = ha1588_axi_0_tx_gmii_clk, DIR = I
PORT ha1588_axi_0_rtc_time_ptp_sec_pin = ha1588_axi_0_rtc_time_ptp_sec, DIR = O, VEC = [47:0]
PORT ha1588_axi_0_rx_gmii_clk_pin = ha1588_axi_0_rx_gmii_clk, DIR = I
PORT ha1588_axi_0_tx_gmii_ctrl_pin = ha1588_axi_0_tx_gmii_ctrl, DIR = I
PORT ha1588_axi_0_rx_gmii_ctrl_pin = ha1588_axi_0_rx_gmii_ctrl, DIR = I
PORT ha1588_axi_0_tx_gmii_data_pin = ha1588_axi_0_tx_gmii_data, DIR = I, VEC = [7:0]
PORT INTR_OUT = ha1588_axi_0_INTR_OUT, DIR = O, SIGIS = INTERRUPT, SENSITIVITY = LEVEL_HIGH
PORT INTR_IN = axi_lite_master_bfm_0_INTR_IN, DIR = I
PORT CLK = net_axi_lite_master_bfm_0_M_AXI_ACLK_pin, DIR = I, SIGIS = CLK
PORT RST_N = net_axi_interconnect_0_INTERCONNECT_ARESETN_pin, DIR = I, SIGIS = RST
 
 
BEGIN ha1588_axi
PARAMETER INSTANCE = ha1588_axi_0
PARAMETER HW_VER = 1.00.a
PARAMETER C_S_AXI_REG_RNG00_BASEADDR = 0x00000000
PARAMETER C_S_AXI_REG_RNG00_HIGHADDR = 0x00000FFF
BUS_INTERFACE S_AXI_REG = axi_interconnect_0
PORT S_AXI_REG_ACLK = net_axi_lite_master_bfm_0_M_AXI_ACLK_pin
PORT rx_gmii_data = ha1588_axi_0_rx_gmii_data
PORT rtc_time_ptp_ns = ha1588_axi_0_rtc_time_ptp_ns
PORT tx_giga_mode = ha1588_axi_0_tx_giga_mode
PORT rx_giga_mode = ha1588_axi_0_rx_giga_mode
PORT rtc_time_one_pps = ha1588_axi_0_rtc_time_one_pps
PORT tx_gmii_clk = ha1588_axi_0_tx_gmii_clk
PORT rtc_time_ptp_sec = ha1588_axi_0_rtc_time_ptp_sec
PORT rx_gmii_clk = ha1588_axi_0_rx_gmii_clk
PORT tx_gmii_ctrl = ha1588_axi_0_tx_gmii_ctrl
PORT rx_gmii_ctrl = ha1588_axi_0_rx_gmii_ctrl
PORT tx_gmii_data = ha1588_axi_0_tx_gmii_data
PORT rtc_clk = net_axi_lite_master_bfm_0_M_AXI_ACLK_pin
PORT INTR_OUT = ha1588_axi_0_INTR_OUT
END
 
BEGIN axi_interconnect
PARAMETER INSTANCE = axi_interconnect_0
PARAMETER HW_VER = 1.06.a
PARAMETER C_INTERCONNECT_CONNECTIVITY_MODE = 0
PORT INTERCONNECT_ACLK = net_axi_lite_master_bfm_0_M_AXI_ACLK_pin
PORT INTERCONNECT_ARESETN = net_axi_interconnect_0_INTERCONNECT_ARESETN_pin
END
 
BEGIN axi_lite_master_bfm
PARAMETER INSTANCE = axi_lite_master_bfm_0
PARAMETER HW_VER = 1.00.a
BUS_INTERFACE M_AXI = axi_interconnect_0
PORT M_AXI_ACLK = net_axi_lite_master_bfm_0_M_AXI_ACLK_pin
PORT INTR_IN = axi_lite_master_bfm_0_INTR_IN
END
 
/trunk/sys/xilinx/pcores/axi_lite_master_bfm_v1_00_a/hdl/verilog/axi_lite_master_bfm.v
0,0 → 1,367
///////////////////////////////////////////////////////////////////////////////
//
// AXI4-Lite Master BFM
//
////////////////////////////////////////////////////////////////////////////
//
// Structure:
// axi_lite_master_bfm
//
// Last Update:
// 13/8/2012
////////////////////////////////////////////////////////////////////////////
 
`timescale 1ns/1ps
 
module axi_lite_master_bfm #
(
parameter integer C_M_AXI_ADDR_WIDTH = 32,
parameter integer C_M_AXI_DATA_WIDTH = 32
)
(
// System Signals
input wire M_AXI_ACLK,
input wire M_AXI_ARESETN,
 
// Master Interface Write Address
output wire [C_M_AXI_ADDR_WIDTH-1:0] M_AXI_AWADDR,
output wire [3-1:0] M_AXI_AWPROT,
output wire M_AXI_AWVALID,
input wire M_AXI_AWREADY,
 
// Master Interface Write Data
output wire [C_M_AXI_DATA_WIDTH-1:0] M_AXI_WDATA,
output wire [C_M_AXI_DATA_WIDTH/8-1:0] M_AXI_WSTRB,
output wire M_AXI_WVALID,
input wire M_AXI_WREADY,
 
// Master Interface Write Response
input wire [2-1:0] M_AXI_BRESP,
input wire M_AXI_BVALID,
output wire M_AXI_BREADY,
 
// Master Interface Read Address
output wire [C_M_AXI_ADDR_WIDTH-1:0] M_AXI_ARADDR,
output wire [3-1:0] M_AXI_ARPROT,
output wire M_AXI_ARVALID,
input wire M_AXI_ARREADY,
 
// Master Interface Read Data
input wire [C_M_AXI_DATA_WIDTH-1:0] M_AXI_RDATA,
input wire [2-1:0] M_AXI_RRESP,
input wire M_AXI_RVALID,
output wire M_AXI_RREADY,
 
// External Signals
input wire INTR_IN
);
 
// AXI4 signals
reg awvalid;
reg wvalid;
reg push_write;
reg pop_read;
reg arvalid;
reg rready;
reg bready;
reg [31:0] awaddr;
reg [31:0] wdata;
reg [31:0] araddr;
wire write_resp_error;
wire read_resp_error;
/////////////////
//I/O Connections
/////////////////
////////////////////
//Write Address (AW)
////////////////////
assign M_AXI_AWADDR = awaddr;
assign M_AXI_WDATA = wdata;
assign M_AXI_AWPROT = 3'h0;
assign M_AXI_AWVALID = awvalid;
 
///////////////
//Write Data(W)
///////////////
assign M_AXI_WVALID = wvalid;
 
//Set all byte strobes in this example
assign M_AXI_WSTRB = -1;
 
////////////////////
//Write Response (B)
////////////////////
assign M_AXI_BREADY = bready;
 
///////////////////
//Read Address (AR)
///////////////////
assign M_AXI_ARADDR = araddr;
assign M_AXI_ARVALID = arvalid;
assign M_AXI_ARPROT = 3'b0;
 
////////////////////////////
//Read and Read Response (R)
////////////////////////////
assign M_AXI_RREADY = rready;
///////////////////////
//Write Address Channel
///////////////////////
/*
The purpose of the write address channel is to request the address and
command information for the entire transaction. It is a single beat
of information.
Note for this example the awvalid/wvalid are asserted at the same
time, and then each is deasserted independent from each other.
This is a lower-performance, but simplier control scheme.
AXI VALID signals must be held active until accepted by the partner.
A data transfer is accepted by the slave when a master has
VALID data and the slave acknoledges it is also READY. While the master
is allowed to generated multiple, back-to-back requests by not
deasserting VALID, this design will add an extra rest cycle for
simplicity.
Since only one outstanding transaction is issued by the user design,
there will not be a collision between a new request and an accepted
request on the same clock cycle. Otherwise, an additional clause is
necessary.
*/
always @(posedge M_AXI_ACLK)
begin
//Only VALID signals must be deasserted during reset per AXI spec
//Consider inverting then registering active-low reset for higher fmax
if (M_AXI_ARESETN == 0 )
awvalid <= 1'b0;
 
//Address accepted by interconnect/slave
else if (M_AXI_AWREADY && awvalid)
awvalid <= 1'b0;
 
//Signal a new address/data command is available by user logic
else if (push_write)
awvalid <= 1'b1;
else
awvalid <= awvalid;
end
 
////////////////////
//Write Data Channel
////////////////////
/*
The write data channel is for transfering the actual data.
The data generation is specific to the example design, and
so only the WVALID/WREADY handshake is shown here
*/
always @(posedge M_AXI_ACLK)
begin
if (M_AXI_ARESETN == 0 )
wvalid <= 1'b0;
//Data accepted by interconnect/slave
else if (M_AXI_WREADY && wvalid)
wvalid <= 1'b0;
 
//Signal a new address/data command is available by user logic
else if (push_write)
wvalid <= 1'b1;
else
wvalid <= awvalid;
end
 
////////////////////////////
//Write Response (B) Channel
////////////////////////////
/*
The write response channel provides feedback that the write has committed
to memory. BREADY will occur after both the data and the write address
has arrived and been accepted by the slave, and can guarantee that no
other accesses launched afterwards will be able to be reordered before it.
The BRESP bit [1] is used indicate any errors from the interconnect or
slave for the entire write burst. This example will capture the error.
While not necessary per spec, it is advisable to reset READY signals in
case of differing reset latencies between master/slave.
*/
 
//Always accept write responses
always @(posedge M_AXI_ACLK)
begin
if (M_AXI_ARESETN == 0)
bready <= 1'b0;
else
bready <= 1'b1;
end
 
//Flag write errors
assign write_resp_error = bready & M_AXI_BVALID & M_AXI_BRESP[1];
//////////////////////
//Read Address Channel
//////////////////////
always @(posedge M_AXI_ACLK)
begin
if (M_AXI_ARESETN == 0 )
arvalid <= 1'b0;
else if (M_AXI_ARREADY && arvalid)
arvalid <= 1'b0;
else if (pop_read)
arvalid <= 1'b1;
else
arvalid <= arvalid;
end
 
//////////////////////////////////
//Read Data (and Response) Channel
//////////////////////////////////
/*
The Read Data channel returns the results of the read request
In this example the data checker is always able to accept
more data, so no need to throttle the RREADY signal.
While not necessary per spec, it is advisable to reset READY signals in
case of differing reset latencies between master/slave.
*/
always @(posedge M_AXI_ACLK)
begin
if (M_AXI_ARESETN == 0)
rready <= 1'b0;
else
rready <= 1'b1;
end
 
//Flag write errors
assign read_resp_error = rready & M_AXI_RVALID & M_AXI_RRESP[1];
 
////////////
//User Logic
////////////
 
///////////////////////
//Main write controller
///////////////////////
/*
By only issuing one request at a time, the control logic is
simplified.
Request a new write if:
-A command was not just submitted
-AW and W channels are both idle
-A new request was not requested last cycle
*/
/*always @(posedge M_AXI_ACLK)
begin
if (M_AXI_ARESETN == 0 )
begin
push_write <= 1'b0;
end
 
//Request new write
else if (~awvalid && ~wvalid && ~push_write)
begin
push_write <= 1'b1;
end
else
begin
push_write <= 1'b0; //Negate to generate a pulse
end
end */
 
//////////////////////
//Main read controller
//////////////////////
/*
By only issuing one request at a time, the control logic is
simplified.
 
Request a new read if:
-A command was not just submitted
-AR channel is idle
-A new request was not requested last cycle
*/
/*always @(posedge M_AXI_ACLK)
begin
if (M_AXI_ARESETN == 0 )
begin
pop_read <= 1'b0;
end
 
//Request new read
else if (~arvalid && ~pop_read)
begin
pop_read <= 1'b1;
end
else
begin
pop_read <= 1'b0; //Negate to generate a pulse
end
end */
 
 
task axi4_wr_req(input [31:0]addr, input [31:0]data);
integer i;
begin
$write("axi4_wr %08x", addr);
$write(" %08x", data);
for (i=0; i<1; i=i+1) @(posedge M_AXI_ACLK);
awaddr = addr;
wdata = data;
push_write = 1'b1;
for (i=0; i<1; i=i+1) @(posedge M_AXI_ACLK);
awaddr = addr;
wdata = data;
push_write = 1'b0;
for (i=0; i<1; i=i+1) @(posedge M_AXI_ACLK);
@(~awvalid && ~wvalid);
end
endtask
 
task axi4_rd_req(input [31:0]addr);
integer i;
begin
$write("axi4_rd %08x", addr);
for (i=0; i<1; i=i+1) @(posedge M_AXI_ACLK);
araddr = addr;
pop_read = 1'b1;
for (i=0; i<1; i=i+1) @(posedge M_AXI_ACLK);
araddr = addr;
pop_read = 1'b0;
for (i=0; i<1; i=i+1) @(posedge M_AXI_ACLK);
@(~arvalid);
end
endtask
 
task axi4_wr_ack;
begin
@(M_AXI_BVALID && bready);
@(posedge M_AXI_ACLK);
$write(" W_RESP: %08x\n", M_AXI_BRESP);
end
endtask
 
task axi4_rd_ack;
begin
@(M_AXI_RVALID && rready);
@(posedge M_AXI_ACLK);
$write(" %08x", M_AXI_RDATA);
$write(" R_RESP: %08x\n", M_AXI_RRESP);
end
endtask
 
initial begin
#300;
@(posedge M_AXI_ACLK);
axi4_wr_req(32'h00000004,32'h12345678);axi4_wr_ack;
axi4_rd_req(32'h00000004 );axi4_rd_ack;
end
 
endmodule
/trunk/sys/xilinx/pcores/axi_lite_master_bfm_v1_00_a/data/axi_lite_master_bfm_v2_1_0.pao
0,0 → 1,49
## -- DISCLAIMER OF LIABILITY
## --
## -- This file contains proprietary and confidential information of
## -- Xilinx, Inc. ("Xilinx"), that is distributed under a license
## -- from Xilinx, and may be used, copied and/or disclosed only
## -- pursuant to the terms of a valid license agreement with Xilinx.
## --
## -- XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION
## -- ("MATERIALS") "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
## -- EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING WITHOUT
## -- LIMITATION, ANY WARRANTY WITH RESPECT TO NONINFRINGEMENT,
## -- MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. Xilinx
## -- does not warrant that functions included in the Materials will
## -- meet the requirements of Licensee, or that the operation of the
## -- Materials will be uninterrupted or error-free, or that defects
## -- in the Materials will be corrected. Furthermore, Xilinx does
## -- not warrant or make any representations regarding use, or the
## -- results of the use, of the Materials in terms of correctness,
## -- accuracy, reliability or otherwise.
## --
## -- Xilinx products are not designed or intended to be fail-safe,
## -- or for use in any application requiring fail-safe performance,
## -- such as life-support or safety devices or systems, Class III
## -- medical devices, nuclear facilities, applications related to
## -- the deployment of airbags, or any other applications that could
## -- lead to death, personal injury or severe property or
## -- environmental damage (individually and collectively, "critical
## -- applications"). Customer assumes the sole risk and liability
## -- of any use of Xilinx products in critical applications,
## -- subject only to applicable laws and regulations governing
## -- limitations on product liability.
## --
## -- Copyright 2009 Xilinx, Inc.
## -- All rights reserved.
## --
## -- This disclaimer and copyright notice must be retained as part
## -- of this file at all times.
##
###############################################################################
##
## axi_master_bfm.pao
##
## Peripheral Analyze Order File
##
##
###############################################################################
 
 
lib axi_lite_master_bfm_v1_00_a axi_lite_master_bfm.v verilog
/trunk/sys/xilinx/pcores/axi_lite_master_bfm_v1_00_a/data/axi_lite_master_bfm_v2_1_0.mpd
0,0 → 1,93
#-- DISCLAIMER OF LIABILITY
#--
#-- This file contains proprietary and confidential information of
#-- Xilinx, Inc. ("Xilinx"), that is distributed under a license
#-- from Xilinx, and may be used, copied and/or disclosed only
#-- pursuant to the terms of a valid license agreement with Xilinx.
#--
#-- XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION
#-- ("MATERIALS") "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
#-- EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING WITHOUT
#-- LIMITATION, ANY WARRANTY WITH RESPECT TO NONINFRINGEMENT,
#-- MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. Xilinx
#-- does not warrant that functions included in the Materials will
#-- meet the requirements of Licensee, or that the operation of the
#-- Materials will be uninterrupted or error-free, or that defects
#-- in the Materials will be corrected. Furthermore, Xilinx does
#-- not warrant or make any representations regarding use, or the
#-- results of the use, of the Materials in terms of correctness,
#-- accuracy, reliability or otherwise.
#--
#-- Xilinx products are not designed or intended to be fail-safe,
#-- or for use in any application requiring fail-safe performance,
#-- such as life-support or safety devices or systems, Class III
#-- medical devices, nuclear facilities, applications related to
#-- the deployment of airbags, or any other applications that could
#-- lead to death, personal injury or severe property or
#-- environmental damage (individually and collectively, "critical
#-- applications"). Customer assumes the sole risk and liability
#-- of any use of Xilinx products in critical applications,
#-- subject only to applicable laws and regulations governing
#-- limitations on product liability.
#--
#-- Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved.
#--
#-- This disclaimer and copyright notice must be retained as part
#-- of this file at all times.
#--
###################################################################
##
## Name : axi_lite_master_bfm
## Desc : Microprocessor Peripheral Description
## : Automatically generated by PsfUtility
##
###################################################################
 
BEGIN axi_lite_master_bfm
 
## Peripheral Options
OPTION IPTYPE = PERIPHERAL
OPTION IMP_NETLIST = TRUE
OPTION STYLE = HDL
OPTION DESC = AXI Lite Master BFM
OPTION LONG_DESC = AXI4-Lite Master BFM
OPTION HDL = MIXED
OPTION RUN_NGCBUILD = FALSE
 
## Bus Interfaces
BUS_INTERFACE BUS = M_AXI, BUS_STD = AXI, BUS_TYPE = MASTER
 
## Generics for VHDL or Parameters for Verilog
PARAMETER C_M_AXI_ADDR_WIDTH = 32, DT = integer, ASSIGNMENT = CONSTANT, BUS = M_AXI
PARAMETER C_M_AXI_DATA_WIDTH = 32, DT = integer, ASSIGNMENT = CONSTANT, BUS = M_AXI
PARAMETER C_M_AXI_PROTOCOL = AXI4Lite, DT = string, TYPE = NON_HDL, ASSIGNMENT = CONSTANT, BUS = M_AXI
PARAMETER C_M_AXI_SUPPORTS_READ = 1, DT = integer, ASSIGNMENT = CONSTANT, TYPE = NON_HDL, BUS = M_AXI
PARAMETER C_M_AXI_SUPPORTS_WRITE = 1, DT = integer, ASSIGNMENT = CONSTANT, TYPE = NON_HDL, BUS = M_AXI
 
## Ports
PORT M_AXI_ACLK = "", BUS = M_AXI, DIR = I, SIGIS = CLK
PORT M_AXI_ARESETN = ARESETN, BUS = M_AXI, DIR = I, SIGIS = RST
PORT M_AXI_AWADDR = AWADDR, BUS = M_AXI, DIR = O, VEC = [(C_M_AXI_ADDR_WIDTH-1):0]
PORT M_AXI_AWPROT = AWPROT, BUS = M_AXI, DIR = O, VEC = [2:0]
PORT M_AXI_AWVALID = AWVALID, BUS = M_AXI, DIR = O
PORT M_AXI_AWREADY = AWREADY, BUS = M_AXI, DIR = I
PORT M_AXI_WDATA = WDATA, BUS = M_AXI, DIR = O, VEC = [(C_M_AXI_DATA_WIDTH-1):0]
PORT M_AXI_WSTRB = WSTRB, BUS = M_AXI, DIR = O, VEC = [((C_M_AXI_DATA_WIDTH/8) -1):0]
PORT M_AXI_WVALID = WVALID, BUS = M_AXI, DIR = O
PORT M_AXI_WREADY = WREADY, BUS = M_AXI, DIR = I
PORT M_AXI_BRESP = BRESP, BUS = M_AXI, DIR = I, VEC = [1:0]
PORT M_AXI_BVALID = BVALID, BUS = M_AXI, DIR = I
PORT M_AXI_BREADY = BREADY, BUS = M_AXI, DIR = O
PORT M_AXI_ARADDR = ARADDR, BUS = M_AXI, DIR = O, VEC = [(C_M_AXI_ADDR_WIDTH-1):0
PORT M_AXI_ARPROT = ARPROT, BUS = M_AXI, DIR = O, VEC = [2:0]
PORT M_AXI_ARVALID = ARVALID, BUS = M_AXI, DIR = O
PORT M_AXI_ARREADY = ARREADY, BUS = M_AXI, DIR = I
PORT M_AXI_RDATA = RDATA, BUS = M_AXI, DIR = I, VEC = [(C_M_AXI_DATA_WIDTH-1):0]
PORT M_AXI_RRESP = RRESP, BUS = M_AXI, DIR = I, VEC = [1:0]
PORT M_AXI_RVALID = RVALID, BUS = M_AXI, DIR = I
PORT M_AXI_RREADY = RREADY, BUS = M_AXI, DIR = O
 
## External Ports
PORT INTR_IN = "", DIR = I
 
END
/trunk/sys/xilinx/pcores/axi_lite_master_bfm_v1_00_a/data/axi_lite_master_bfm_v2_1_0.mui
0,0 → 1,107
<?xml version="1.0" encoding="ISO-8859-1"?>
 
<!--
###############################################################################
## DISCLAIMER OF LIABILITY
##
## This file contains proprietary and confidential information of
## Xilinx, Inc. ("Xilinx"), that is distributed under a license
## from Xilinx, and may be used, copied and/or disclosed only
## pursuant to the terms of a valid license agreement with Xilinx.
##
## XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION
## ("MATERIALS") "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
## EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING WITHOUT
## LIMITATION, ANY WARRANTY WITH RESPECT TO NONINFRINGEMENT,
## MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. Xilinx
## does not warrant that functions included in the Materials will
## meet the requirements of Licensee, or that the operation of the
## Materials will be uninterrupted or error-free, or that defects
## in the Materials will be corrected. Furthermore, Xilinx does
## not warrant or make any representations regarding use, or the
## results of the use, of the Materials in terms of correctness,
## accuracy, reliability or otherwise.
##
## Xilinx products are not designed or intended to be fail-safe,
## or for use in any application requiring fail-safe performance,
## such as life-support or safety devices or systems, Class III
## medical devices, nuclear facilities, applications related to
## the deployment of airbags, or any other applications that could
## lead to death, personal injury or severe property or
## environmental damage (individually and collectively, "critical
## applications"). Customer assumes the sole risk and liability
## of any use of Xilinx products in critical applications,
## subject only to applicable laws and regulations governing
## limitations on product liability.
##
## Copyright 2009 Xilinx, Inc.
## All rights reserved.
##
## This disclaimer and copyright notice must be retained as part
## of this file at all times.
##
###############################################################################
-->
 
<!DOCTYPE doc SYSTEM "../../ipdialog.dtd" [
<!-- -->
 
<!ENTITY C_M_AXI_ADDR_WIDTH '
<widget id="C_M_AXI_ADDR_WIDTH">
<key>C_M_AXI_ADDR_WIDTH</key>
<label>C_M_AXI_ADDR_WIDTH</label>
<tip></tip>
</widget>
'>
<!ENTITY C_M_AXI_DATA_WIDTH '
<widget id="C_M_AXI_DATA_WIDTH">
<key>C_M_AXI_DATA_WIDTH</key>
<label>C_M_AXI_DATA_WIDTH</label>
<tip></tip>
</widget>
'>
<!ENTITY C_M_AXI_PROTOCOL '
<widget id="C_M_AXI_PROTOCOL">
<key>C_M_AXI_PROTOCOL</key>
<label>C_M_AXI_PROTOCOL</label>
<tip></tip>
</widget>
'>
<!ENTITY C_M_AXI_SUPPORTS_READ '
<widget id="C_M_AXI_SUPPORTS_READ">
<key>C_M_AXI_SUPPORTS_READ</key>
<label>C_M_AXI_SUPPORTS_READ</label>
<tip></tip>
</widget>
'>
<!ENTITY C_M_AXI_SUPPORTS_WRITE '
<widget id="C_M_AXI_SUPPORTS_WRITE">
<key>C_M_AXI_SUPPORTS_WRITE</key>
<label>C_M_AXI_SUPPORTS_WRITE</label>
<tip></tip>
</widget>
'>
 
]>
 
<doc>
<view id="User">
<display>User</display>
<group id="Common">
<display>Common</display>
<item>&C_M_AXI_PROTOCOL;</item>
</group>
</view>
<view id="System">
<display>System</display>
<group id="AXI">
<display>AXI</display>
<item>&C_M_AXI_ADDR_WIDTH;</item>
<item>&C_M_AXI_DATA_WIDTH;</item>
<item>&C_M_AXI_SUPPORTS_READ;</item>
<item>&C_M_AXI_SUPPORTS_WRITE;</item>
</group>
</view>
</doc>
/trunk/sys/xilinx/ReadMe.txt
0,0 → 1,5
Run system.sim.bat to start ISim based system-level simuation.
 
Run system.xmp to edit the system-level connection.
 
An AXI4-Lite Master BFM is included under pcores. Edit the .v file under hdl to change the behavior of the master.
/trunk/sys/xilinx/cleanup.bat
0,0 → 1,3
rmdir /S /Q etc hdl synthesis implementation simulation __xps data isim
del *.log *.opt *.cmd *.make *.bxml *.bmm *.mss *.xmsgs *.wdb *.exe
 
/trunk/sys/xilinx/system.tb.v
0,0 → 1,62
//-----------------------------------------------------------------------------
// system.tb.v
//-----------------------------------------------------------------------------
 
`timescale 1 ps / 100 fs
 
// START USER CODE (Do not remove this line)
 
// User: Put your directives here. Code in this
// section will not be overwritten.
 
// END USER CODE (Do not remove this line)
 
module system_tb
(
);
 
// START USER CODE (Do not remove this line)
 
// User: Put your signals here. Code in this
// section will not be overwritten.
parameter PERIOD = 10000;
 
// END USER CODE (Do not remove this line)
 
 
// Internal signals
 
reg CLK;
reg RST_N;
wire INTR;
 
system
dut (
.RST_N ( RST_N ),
.CLK ( CLK ),
.INTR_IN ( INTR ),
.INTR_OUT ( INTR )
);
 
// START USER CODE (Do not remove this line)
 
// User: Put your stimulus here. Code in this
// section will not be overwritten.
initial begin
RST_N = 1'b0;
@(negedge CLK);
@(negedge CLK);
@(negedge CLK);
RST_N = 1'b1;
end
always begin
CLK = 1'b0;
#(PERIOD/2) CLK = 1'b1;
#(PERIOD/2);
end
// END USER CODE (Do not remove this line)
 
endmodule
 

powered by: WebSVN 2.1.0

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