1
0
mirror of https://github.com/bmartini/zynq-axis.git synced 2024-09-05 19:19:27 +08:00

99 Commits

Author SHA1 Message Date
Berin Martini
8984a29ed9 Ensure correct width during bus assignment 2016-05-30 20:13:19 -07:00
Berin Martini
f976f569ab Ensure correct width during bus assignment 2016-05-30 20:12:13 -07:00
Berin Martini
0c3c7599fb Ensure correct width during bus assignment 2016-05-30 20:08:39 -07:00
Berin Martini
aae41b52d1 Define variables before use in axis_write.v 2016-05-30 19:55:37 -07:00
Berin Martini
fae937bf52 Define variables before use in axis_read.v 2016-05-30 19:53:45 -07:00
Berin Martini
b05b6bd6d4 Use blocking assignment in non-clocked always block
Combinational logic shouldn't use the non-blocking assignment.
2016-05-30 19:48:30 -07:00
Berin Martini
1885150a4c Use blocking assignment in non-clocked always block
Combinational logic shouldn't use the non-blocking assignment.
2016-05-30 19:47:58 -07:00
Berin Martini
180d20067b Use blocking assignment in non-clocked always block
Combinational logic shouldn't use the non-blocking assignment.
2016-05-30 19:45:58 -07:00
Berin Martini
e1dd988185 Define burst_done before use in axi_addr.v 2016-05-30 19:45:16 -07:00
Berin Martini
d048db507b Update doc with latest version of Vivado (2015.4)
The project has been updated to use the latest version (as of writing) of
Vivado.
2016-03-17 19:27:48 -04:00
Berin Martini
34a5c422cf Merge branch 'package-project'
Update project to use Xilinx IP Packages and Vivado 2015.4 tools. Add project
for Zedboard, MicroZed and the ZC706.
2016-02-28 18:11:56 -05:00
Berin Martini
7f79a64983 Remove old 2014.2 Xilinx projects
This project has been superseded by the new loopback IP Package project.
2016-02-28 18:06:43 -05:00
Berin Martini
45487e1b98 Lower clk rate of Zedboard to meet timing
The Zedboard system could not meet timing at 250 MHz so the clock has been
reduced to 142 MHz.
2016-02-28 17:56:38 -05:00
Berin Martini
d4fcec367d Add MicroZed project that uses IP Packages
This project is generated from scratch using a TCL script and relies on all
code that is to be added being wrapped in an IP Package.
2016-02-28 17:11:24 -05:00
Berin Martini
90434213c4 Add Zedboard project that uses IP Packages
This project is generated from scratch using a TCL script and relies on all
code that is to be added being wrapped in an IP Package.
2016-02-28 15:53:37 -05:00
Berin Martini
295d3a1ea6 Add ZC706 project that uses IP Packages
This project is generated from scratch using a TCL script and relies on all
code that is to be added being wrapped in an IP Package.
2016-02-28 15:12:16 -05:00
Berin Martini
9c83c4695f Add axis_loopback IP Package generated by pkg-module
This package contains the configuration files but not the code. The code is
added to the IP Package directory with the 'syn-proj-prep' script.
2016-02-28 15:12:15 -05:00
Berin Martini
78cbf0d955 Add IP Package top file for axis loopback code
This module is a rewrite of the zedboard_axis module but done so such that it
can be used to automatically generate an IP Package.
2016-02-28 14:50:45 -05:00
Berin Martini
6c481f894b Update axi4lite_cfg parameters for standard compatibility
The AXI4 Lite bus Xilinx uses addresses the bytes in the 32 bit data word.
Since the config registers used in by the Linux system only cares about the 32
bit registers the lower two address bits get ignored. These changes makes it
easier to integrate the module when using it in an IP Package.
2016-02-27 18:38:40 -05:00
Berin Martini
0b5fc2534e Merge branch 'update-scripts'
Update bash helper scripts. With these changes more Zynq boards are supported
and the ability to create simple package's has been added.
2016-02-27 16:37:39 -05:00
Berin Martini
e619e0289a pkg-module to create packages for any supported platform
The new option is passed to the make-proj.sh script and thus any platform that
script supports can be used by the 'pkg-module' script.
2016-02-27 16:35:36 -05:00
Berin Martini
c30562deec Rename bitstream file to projects name after synthesizes
Some projects will name the bitstream files a standard name and thus by
renaming them we can ensure that the bitstream files are easily identified
after syntheses.
2016-02-27 16:23:48 -05:00
Berin Martini
8c22d67eec Update bash script completion definitions
This allows for the the 'pkg-module' script to have bash tab completion when
invoked in the repos root directory. Its the same as the 'sim-module' auto
completion in that it looks in the 'hdl' directory for module file names.
2016-02-27 16:19:50 -05:00
Berin Martini
91a3256ae6 Add script to automate simple IP Package creation
Invoking this script with a modules filename as argument will try and create a
Xilinx IP Package. Once crated the package is moved to a 'ip/ip_repo' directory
and can be used in a Vivado project.

The method of package creation is simple and for the most part automatic and
thus we assume that Xilinx naming conventions etc are observed.
2016-02-27 16:18:06 -05:00
Berin Martini
a2008f71b8 Prep user IP Packages for use in synth
IP Packages are going to be created using HDL files in the repo. These files
need to be moved into the package directory for use in the package. This change
ensure that the files are made available. Its not the best as it copies ALL
files into the package directory and not just the needed files.
2016-02-27 15:52:14 -05:00
Berin Martini
11c556b29b Update make-proj to support more FPGA platforms
Be able to select more Zynq boards as a project target.
2016-02-26 23:36:34 -05:00
Berin Martini
a53998a69d Replace axis_memory_offset function with mem_alloc_state
The functionality of the axis_memory_offset function can be replicated by using
mem_alloc_state while at the same times provides a more powerful interface to
the memory allocation system.

The 1st argument passed to the new mem_alloc_state functions is a pointer to a
void pointer (start) whose value will be overwritten to be the start pointer of
the CMA memory area. The 2nd argument is a pointer to a unsigned int whose
values will be overwritten to be the current 'offset' from that start pointer
and thus represents how many bytes has been allocated.
2015-10-29 14:42:25 +00:00
Berin Martini
586efff1a9 White space correction for interface.c 2015-10-29 02:12:29 +00:00
Berin Martini
dafc85637a New function in library 'axis_memory_offset'
This function takes as argument an offset indexed from zero and returns a usage
pointer corresponding to the offset from the start of the CMA region. Thus an
argument offset of zero would give the pointer to the start of the CMA region.
2015-10-29 02:12:29 +00:00
Berin Martini
a0c2bde576 Increase the CMA region to 126MB from 63MB
This gives more room to play with in the FPGA project.
2015-10-29 00:58:33 +00:00
Berin Martini
0ab669e7c0 Remove assert for AXIS port max number
It is possible to have more then 4 AXIS modules if 2 or more are connected to
the same AXI Interconnect.
2015-09-24 20:05:15 +00:00
Berin Martini
0bb945c62d Add doc on building u-boot, kernel and devicetree
Some bare bones instructions on how to compile the above list of components.
2015-09-23 01:22:45 -04:00
Berin Martini
01a04802cf Update CC variable in app & lib Makefiles
This change prepends the CROSS_COMPILE environmental variable to the compilers
definition. Thus adding the possibility of cross compiling when the cross
compiling tool chain has been setup correctly.
2015-02-12 01:52:10 -05:00
Berin Martini
a1394df70a Add Acknowledgements in README 2015-02-11 15:54:38 -05:00
Berin Martini
55319e7d19 Associate axi_clk to AXI bus interfaces
By explicitly pairing the clock running the interface with the interface
in Vivado it allows for better timing analysis and remove some 'CRITICAL
WARNINGS'.
2015-02-09 14:21:20 -05:00
Berin Martini
1074aa90fb Add 'Creating Devicetree' section to README.md
A working devicetree is a necessary component to the AXIS system.
2015-02-01 18:09:26 -05:00
Berin Martini
95313c98f7 Memory alignment does not need to be PAGE aligned
The memory is addressable using the AXIS ports in 64 bit (8 byte) chunks. Thus
when allocating memory from CMA region, the start address needs to be 64 bit
aligned, not page aligned. This change will thus reduce the 'padding' at the
end of arrays and thus RAM.
2015-01-30 15:53:28 -05:00
Berin Martini
9d1c2b3538 Remove hdl/system(_wrapper).v from Xilinx project
These files are re-generated every time the project is synthesized and thus do
not need to be kept in the repo.
2015-01-17 16:16:43 -05:00
Berin Martini
7c4d49a809 Add device tree example for a Zynq AXIS project
This devicetree code is an altered version of the
'arch/arm/boot/dts/zynq-7000.dtsi' file found in the linux-xlnx Xilinx
repo, master branch commit (da2d296bb6b89f7bc7644f6b552b9766ac1c17d5).

The only thing that was added was the following axis node:-

```
axis: axis@43C00000 {
	compatible = "xlnx,axis-1.00";
	reg = < 0x43C00000 0x10000 >;
	xlnx,num-mem = <0x1>;
	xlnx,num-reg = <0x20>;
	xlnx,s-axi-min-size = <0x1ff>;
	xlnx,slv-awidth = <0x20>;
	xlnx,slv-dwidth = <0x20>;
};
```
2015-01-12 14:56:33 -05:00
Berin Martini
89d9632652 Change devicetree AXIS node name
The udev rule now identifies the Linux kernel module via a different
devicetree name, one that is more in keeping with the project.
2015-01-12 14:50:35 -05:00
Berin Martini
5d08213087 Fix markdown typo in README.md 2015-01-12 10:46:13 -05:00
Berin Martini
4e1d4af8eb Add README.md to the project 2015-01-11 16:11:39 -05:00
Berin Martini
7636ed6277 Bug fix: axis_addr testbench
Had not updated it to remove the address ID tag.
2015-01-11 13:12:20 -05:00
Berin Martini
0ff47fafb6 Bug fix: axis_write testbench
Had not updated it to remove the address ID tag.
2015-01-11 13:10:29 -05:00
Berin Martini
65d8079cda Terminate axi_rresp & axi_rlast in axis.v
Since these signals are never used, they do not need to be propagated
past the axis.v module.
2015-01-11 13:04:29 -05:00
Berin Martini
48a322ba60 Bug fix: axis_read testbench
Had not updated it to remove the address ID tag.
2015-01-11 12:54:29 -05:00
Berin Martini
c8c10e7a47 Add License information
The code in the repo have a mixture of different licenses. The
LICENSE.md file explains what code has which license.
2015-01-10 13:30:43 -05:00
Berin Martini
7f189376a6 Merge branch 'library-updates'
Extend the interface library to properly handle the DMA memory exposed by the
axis driver.
2015-01-09 17:26:02 -05:00
Berin Martini
66f4315fdd Add some more configuration bus functions
Similar functions could be constructed using calls to the already existing
functions, however, it seems more efficient to add them to the library in case
the application cannot optimizes external library calls.
2015-01-09 17:17:34 -05:00
Berin Martini
76e102294b Add function to help configure the axis ports
This frees the application writer from having to know low level details like
the physical memory address of arrays etc.
2015-01-09 17:15:12 -05:00