/hwdesigns

Scripted hardware designs

Primary LanguageVHDL

Design Flow

  1. Add Sources -> Add or create design sources -> Define Verilog Modules
  2. Create Block Design -> Add IP and Add Module (our custom verilog modules)
  3. Generate output Products of the Block design A Vivado IP instance allows you to generate various output products (instantiation template, synthesis, simulation, example designs, etc.) on demand. Some products are generated by default.
  4. Create HDL Wrapper on the Block design to generate the external IO pins for Synthesis & Implementation
  5. Optional: Write Testbench code in Verilog by Add Sources->Create simulation sources.Then Run simulation
  6. Run Synthesis
  7. Run Implementation
  8. Generate Bitstream
  9. File->Export->Export Hardware (Include Bitstream)
  10. Launch SDK

Xilinx SDK

  1. New->Application Project->Empty Application
  2. New->Board Support Package system.mss -> Import Examples for various Peripheral Devices system.hdf -> Describes the memory mapped addresses
  3. Project->BuildConfigurations->SetActive->Debug or Release
  4. Run>DebugConfigurations->LaunchOnHardware
  5. Run->RunConfigurations
  6. Optional->SDK Terminal-> + (ConnectToSerialPort) BaudRate:115200, DataBits:8, StopBits:1, Parity:None, FlowControl:None 0indexed Port1 for ZyboZ7

Backup

Vivado->Write Project Tcl. WindowsExplorer->Copy srcs, sdk folders

Troubleshooting

  1. PL Fabric Clocks not working or updating - The Clocks are configuration of the Zynq PS. The bitstream only modifies the PL fabric (fpga). So we will have to generate FSBL to configure the PS.
  2. Unspecified I/O Standard: 2 out of 132 logical ports use I/O standard (IOSTANDARD) value 'DEFAULT', instead of a user assigned specific value. Use LVCMOS33 as IOSTANDARD and select the pins before generating the bitstream.
  3. We see the module's IO ports requested in the constraints file when generating bitstream Create HDL Wrapper on the high level Block design