zynq-sandbox

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit a448cfe567c38e42ce9cd1cc4f3741bbd0a3026f
parent 5925ec1090b1484280e397aa719467d0c1fdd787
Author: Travis Geiselbrecht <geist@foobox.com>
Date:   Tue,  2 Sep 2014 19:15:29 -0700

simple io project on microzed 020

Diffstat:
MMakefile | 8++++++++
Ahdl/uzed_simple_io.sv | 73+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Ahdl/uzed_simple_io.xdc | 184+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 265 insertions(+), 0 deletions(-)

diff --git a/Makefile b/Makefile @@ -25,6 +25,14 @@ MODULE_SRCS += hdl/zynq_ps_1m.sv MODULE_SRCS += hdl/zybo_simple_io.xdc include build/vivado-bitfile.mk +MODULE_NAME := uzed-simple-io +MODULE_PART := xc7z020clg400-1 +MODULE_SRCS := hdl/uzed_simple_io.sv +MODULE_SRCS += hdl/axi_ifc.sv hdl/axi_registers.sv +MODULE_SRCS += hdl/zynq_ps_1m.sv +MODULE_SRCS += hdl/uzed_simple_io.xdc +include build/vivado-bitfile.mk + HDMI_SRCS := \ hdl/hdmi_core.sv \ hdl/mmcm_1in_3out.sv \ diff --git a/hdl/uzed_simple_io.sv b/hdl/uzed_simple_io.sv @@ -0,0 +1,73 @@ +// Copyright 2014 Brian Swetland <swetland@frotz.net> +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +`timescale 1ns / 1ps + +module top( + ); + +axi_ifc #(.IWIDTH(12),.AXI3(1)) axi_ctl(); + +wire fclk; +wire axiclk = fclk; + +zynq_ps7 zynq( + .fclk0(fclk), + .m_axi_gp0_clk(axiclk), + .m_axi_gp0(axi_ctl) + ); + +reg [31:0]dbg_reg = 32'haabbccdd; + +wire [31:0]wdata; +reg [31:0]rdata; +wire [1:0]wreg; +wire [1:0]rreg; +wire wr; +wire rd; + +axi_registers regs( + .clk(axiclk), + .s(axi_ctl), + .o_rreg(rreg), + .o_wreg(wreg), + .i_rdata(rdata), + .o_wdata(wdata), + .o_rd(rd), + .o_wr(wr) + ); + +always_comb begin + case (rreg) + 0: rdata = 0; + 1: rdata = 0; + 2: rdata = dbg_reg; + 3: rdata = 32'h12345678; + endcase +end + +always_ff @(posedge axiclk) begin + if (wr) begin + case (wreg) + 0: ; + 1: ; + 2: dbg_reg <= wdata; + 3: ; + endcase + end +end + +endmodule + +// vim: set noexpandtab: diff --git a/hdl/uzed_simple_io.xdc b/hdl/uzed_simple_io.xdc @@ -0,0 +1,184 @@ +# ---------------------------------------------------------------------------- +# _____ +# / \ +# /____ \____ +# / \===\ \==/ +# /___\===\___\/ AVNET Design Resource Center +# \======/ www.em.avnet.com/drc +# \====/ +# ---------------------------------------------------------------------------- +# +# Created With Avnet UCF Generator V0.4.0 +# Date: Wednesday, November 27, 2013 +# Time: 2:10:18 PM +# +# This design is the property of Avnet. Publication of this +# design is not authorized without written consent from Avnet. +# +# Please direct any questions or issues to the MicroZed Community Forums: +# http://www.microzed.org +# +# Disclaimer: +# Avnet, Inc. makes no warranty for the use of this code or design. +# This code is provided "As Is". Avnet, Inc assumes no responsibility for +# any errors, which may appear in this code, nor does it make a commitment +# to update the information contained herein. Avnet, Inc specifically +# disclaims any implied warranties of fitness for a particular purpose. +# Copyright(c) 2013 Avnet, Inc. +# All rights reserved. +# +# ---------------------------------------------------------------------------- +# +# Notes: +# +# 27 November 2013 +# IO standards based upon Bank 34, Bank 35 Vcco supply options of 1.8V, +# 2.5V, or 3.3V are possible based upon the Vadj jumper (J18) settings. +# By default, Vadj is expected to be set to 1.8V but if a different +# voltage is used for a particular design, then the corresponding IO +# standard within this UCF should also be updated to reflect the actual +# Vadj jumper selection. +# +# Net names are not allowed to contain hyphen characters '-' since this +# is not a legal VHDL87 or Verilog character within an identifier. +# HDL net names are adjusted to contain no hyphen characters '-' but +# rather use underscore '_' characters. Comment net name with the hyphen +# characters will remain in place since these are intended to match the +# schematic net names in order to better enable schematic search. +# +# In the following, the XDC constraint is matched to the origanal UCF +# constraint, UCF commented out above, XDC equivalent placedbelow the UCF. +# +# ---------------------------------------------------------------------------- + +create_clock -add -name axiclk -period 10.00 -waveform {0 5} [get_nets axiclk] + +# Bank 13, Vcco = Vadj +# Set the bank voltage for bank 13. +#set_property IOSTANDARD LVCMOS18 [get_ports -filter { IOBANK == 13 } ] + +#set_property PACKAGE_PIN V7 [get_ports {BANK13_LVDS_0_N}] +#set_property PACKAGE_PIN U7 [get_ports {BANK13_LVDS_0_P}] +#set_property PACKAGE_PIN U10 [get_ports {BANK13_LVDS_1_N}] +#set_property PACKAGE_PIN T9 [get_ports {BANK13_LVDS_1_P}] +#set_property PACKAGE_PIN W8 [get_ports {BANK13_LVDS_2_N}] +#set_property PACKAGE_PIN V8 [get_ports {BANK13_LVDS_2_P}] +#set_property PACKAGE_PIN U5 [get_ports {BANK13_LVDS_3_N}] +#set_property PACKAGE_PIN T5 [get_ports {BANK13_LVDS_3_P}] +#set_property PACKAGE_PIN Y13 [get_ports {BANK13_LVDS_4_N}] +#set_property PACKAGE_PIN Y12 [get_ports {BANK13_LVDS_4_P}] +#set_property PACKAGE_PIN V10 [get_ports {BANK13_LVDS_5_N}] +#set_property PACKAGE_PIN V11 [get_ports {BANK13_LVDS_5_P}] +#set_property PACKAGE_PIN W6 [get_ports {BANK13_LVDS_6_N}] +#set_property PACKAGE_PIN V6 [get_ports {BANK13_LVDS_6_P}] +#set_property PACKAGE_PIN V5 [get_ports {BANK13_SE_0}] + +# Bank 34, Vcco = Vadj +# Set the bank voltage for bank 34. +#set_property IOSTANDARD LVCMOS18 [get_ports -filter { IOBANK == 34 } ] + +#set_property PACKAGE_PIN T10 [get_ports {JX1_LVDS_0_N}] +#set_property PACKAGE_PIN T11 [get_ports {JX1_LVDS_0_P}] +#set_property PACKAGE_PIN U12 [get_ports {JX1_LVDS_1_N}] +#set_property PACKAGE_PIN T12 [get_ports {JX1_LVDS_1_P}] +#set_property PACKAGE_PIN U15 [get_ports {X1_LVDS_10_N}] +#set_property PACKAGE_PIN U14 [get_ports {JX1_LVDS_10_P}] +#set_property PACKAGE_PIN U19 [get_ports {JX1_LVDS_11_N}] +#set_property PACKAGE_PIN U18 [get_ports {JX1_LVDS_11_P}] +#set_property PACKAGE_PIN P19 [get_ports {JX1_LVDS_12_N}] +#set_property PACKAGE_PIN N18 [get_ports {JX1_LVDS_12_P}] +#set_property PACKAGE_PIN P20 [get_ports {JX1_LVDS_13_N}] +#set_property PACKAGE_PIN N20 [get_ports {JX1_LVDS_13_P}] +#set_property PACKAGE_PIN U20 [get_ports {JX1_LVDS_14_N}] +#set_property PACKAGE_PIN T20 [get_ports {JX1_LVDS_14_P}] +#set_property PACKAGE_PIN W20 [get_ports {JX1_LVDS_15_N}] +#set_property PACKAGE_PIN V20 [get_ports {JX1_LVDS_15_P}] +#set_property PACKAGE_PIN Y19 [get_ports {JX1_LVDS_16_N}] +#set_property PACKAGE_PIN Y18 [get_ports {JX1_LVDS_16_P}] +#set_property PACKAGE_PIN W16 [get_ports {JX1_LVDS_17_N}] +#set_property PACKAGE_PIN V16 [get_ports {JX1_LVDS_17_P}] +#set_property PACKAGE_PIN R17 [get_ports {JX1_LVDS_18_N}] +#set_property PACKAGE_PIN R16 [get_ports {JX1_LVDS_18_P}] +#set_property PACKAGE_PIN R18 [get_ports {JX1_LVDS_19_N}] +#set_property PACKAGE_PIN T17 [get_ports {JX1_LVDS_19_P}] +#set_property PACKAGE_PIN V13 [get_ports {JX1_LVDS_2_N}] +#set_property PACKAGE_PIN U13 [get_ports {JX1_LVDS_2_P}] +#set_property PACKAGE_PIN V18 [get_ports {JX1_LVDS_20_N}] +#set_property PACKAGE_PIN V17 [get_ports {JX1_LVDS_20_P}] +#set_property PACKAGE_PIN W19 [get_ports {JX1_LVDS_21_N}] +#set_property PACKAGE_PIN W18 [get_ports {JX1_LVDS_21_P}] +#set_property PACKAGE_PIN P18 [get_ports {JX1_LVDS_22_N}] +#set_property PACKAGE_PIN N17 [get_ports {JX1_LVDS_22_P}] +#set_property PACKAGE_PIN P16 [get_ports {JX1_LVDS_23_N}] +#set_property PACKAGE_PIN P15 [get_ports {JX1_LVDS_23_P}] +#set_property PACKAGE_PIN W13 [get_ports {JX1_LVDS_3_N}] +#set_property PACKAGE_PIN V12 [get_ports {JX1_LVDS_3_P}] +#set_property PACKAGE_PIN T15 [get_ports {JX1_LVDS_4_N}] +#set_property PACKAGE_PIN T14 [get_ports {JX1_LVDS_4_P}] +#set_property PACKAGE_PIN R14 [get_ports {JX1_LVDS_5_N}] +#set_property PACKAGE_PIN P14 [get_ports {JX1_LVDS_5_P}] +#set_property PACKAGE_PIN Y17 [get_ports {JX1_LVDS_6_N}] +#set_property PACKAGE_PIN Y16 [get_ports {JX1_LVDS_6_P}] +#set_property PACKAGE_PIN Y14 [get_ports {JX1_LVDS_7_N}] +#set_property PACKAGE_PIN W14 [get_ports {JX1_LVDS_7_P}] +#set_property PACKAGE_PIN U17 [get_ports {JX1_LVDS_8_N}] +#set_property PACKAGE_PIN T16 [get_ports {JX1_LVDS_8_P}] +#set_property PACKAGE_PIN W15 [get_ports {JX1_LVDS_9_N}] +#set_property PACKAGE_PIN V15 [get_ports {JX1_LVDS_9_P}] +#set_property PACKAGE_PIN R19 [get_ports {JX1_SE_0}] +#set_property PACKAGE_PIN T19 [get_ports {JX1_SE_1}] + +# Bank 35, Vcco = Vadj +# Set the bank voltage for bank 35. +#set_property IOSTANDARD LVCMOS18 [get_ports -filter { IOBANK == 35 } ] + +#set_property PACKAGE_PIN B20 [get_ports {JX2_LVDS_0_N}] +#set_property PACKAGE_PIN C20 [get_ports {JX2_LVDS_0_P}] +#set_property PACKAGE_PIN A20 [get_ports {JX2_LVDS_1_N}] +#set_property PACKAGE_PIN B19 [get_ports {JX2_LVDS_1_P}] +#set_property PACKAGE_PIN L17 [get_ports {JX2_LVDS_10_N}] +#set_property PACKAGE_PIN L16 [get_ports {JX2_LVDS_10_P}] +#set_property PACKAGE_PIN K18 [get_ports {JX2_LVDS_11_N}] +#set_property PACKAGE_PIN K17 [get_ports {JX2_LVDS_11_P}] +#set_property PACKAGE_PIN H17 [get_ports {JX2_LVDS_12_N}] +#set_property PACKAGE_PIN H16 [get_ports {JX2_LVDS_12_P}] +#set_property PACKAGE_PIN H18 [get_ports {JX2_LVDS_13_N}] +#set_property PACKAGE_PIN J18 [get_ports {JX2_LVDS_13_P}] +#set_property PACKAGE_PIN G18 [get_ports {JX2_LVDS_14_N}] +#set_property PACKAGE_PIN G17 [get_ports {JX2_LVDS_14_P}] +#set_property PACKAGE_PIN F20 [get_ports {JX2_LVDS_15_N}] +#set_property PACKAGE_PIN F19 [get_ports {JX2_LVDS_15_P}] +#set_property PACKAGE_PIN G20 [get_ports {JX2_LVDS_16_N}] +#set_property PACKAGE_PIN G19 [get_ports {JX2_LVDS_16_P}] +#set_property PACKAGE_PIN H20 [get_ports {JX2_LVDS_17_N}] +#set_property PACKAGE_PIN J20 [get_ports {JX2_LVDS_17_P}] +#set_property PACKAGE_PIN J14 [get_ports {JX2_LVDS_18_N}] +#set_property PACKAGE_PIN K14 [get_ports {JX2_LVDS_18_P}] +#set_property PACKAGE_PIN G15 [get_ports {JX2_LVDS_19_N}] +#set_property PACKAGE_PIN H15 [get_ports {JX2_LVDS_19_P}] +#set_property PACKAGE_PIN D18 [get_ports {JX2_LVDS_2_N}] +#set_property PACKAGE_PIN E17 [get_ports {JX2_LVDS_2_P}] +#set_property PACKAGE_PIN N16 [get_ports {JX2_LVDS_20_N}] +#set_property PACKAGE_PIN N15 [get_ports {JX2_LVDS_20_P}] +#set_property PACKAGE_PIN L15 [get_ports {JX2_LVDS_21_N}] +#set_property PACKAGE_PIN L14 [get_ports {JX2_LVDS_21_P}] +#set_property PACKAGE_PIN M15 [get_ports {JX2_LVDS_22_N}] +#set_property PACKAGE_PIN M14 [get_ports {JX2_LVDS_22_P}] +#set_property PACKAGE_PIN J16 [get_ports {JX2_LVDS_23_N}] +#set_property PACKAGE_PIN K16 [get_ports {JX2_LVDS_23_P}] +#set_property PACKAGE_PIN D20 [get_ports {JX2_LVDS_3_N}] +#set_property PACKAGE_PIN D19 [get_ports {JX2_LVDS_3_P}] +#set_property PACKAGE_PIN E19 [get_ports {JX2_LVDS_4_N}] +#set_property PACKAGE_PIN E18 [get_ports {JX2_LVDS_4_P}] +#set_property PACKAGE_PIN F17 [get_ports {JX2_LVDS_5_N}] +#set_property PACKAGE_PIN F16 [get_ports {JX2_LVDS_5_P}] +#set_property PACKAGE_PIN L20 [get_ports {JX2_LVDS_6_N}] +#set_property PACKAGE_PIN L19 [get_ports {JX2_LVDS_6_P}] +#set_property PACKAGE_PIN M20 [get_ports {JX2_LVDS_7_N}] +#set_property PACKAGE_PIN M19 [get_ports {JX2_LVDS_7_P}] +#set_property PACKAGE_PIN M18 [get_ports {JX2_LVDS_8_N}] +#set_property PACKAGE_PIN M17 [get_ports {JX2_LVDS_8_P}] +#set_property PACKAGE_PIN J19 [get_ports {JX2_LVDS_9_N}] +#set_property PACKAGE_PIN K19 [get_ports {JX2_LVDS_9_P}] +#set_property PACKAGE_PIN G14 [get_ports {JX2_SE_0}] +#set_property PACKAGE_PIN J15 [get_ports {JX2_SE_1}]