element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet & Tria Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
ZedBoard Hardware Design Interface custom VHDL code with PS simple_register
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 20 replies
  • Subscribers 345 subscribers
  • Views 2060 views
  • Users 0 members are here
Related

Interface custom VHDL code with PS simple_register

Former Member
Former Member over 13 years ago

I followed the instructions to create custom peripheral simple_register. I am able to read and write values to my register.

I am now interested in connecting my VHDL entity to the simple_register inside the PS.
e.g my VHDL entity has:

entity fpga1_top_fp is
    Port (
    --! Inputs
    clk                 : in std_logic; --! clock input
    rst                 : in std_logic; --! reset
    ce                  : in std_logic; --! enable
    ndata_en            : in std_logic; --! new data enable
    ia                  : in std_logic_vector(31 downto 0);
    --! Outputs
    va                  : out std_logic_vector(31 downto 0)
    ) ;
end entity fpga1_top_fp;

Now I connect this in user_logic.vhd:
uut: fpga1_top_fp PORT MAP(
clk => Bus2IP_Clk,
rst => slv_reg0(0),
ce => slv_reg0(1),
ndata_en => slv_reg0(2),
ia => slv_reg1,
va => slv_reg2);

I have instantiated my simple_register with 16 registers and I am using slv_reg0 to set my handshaking signals. slv_reg1 is a write register and slv_reg2 is a read register.

Qns:
1. How do I add fpga1_top_fp to my synthesis path through planahead?
2. The workaround I did was to synthesize and implement my fpga1_top_fp using ISE and then copy the .ngc files and the coregen .ngc files to the .srcs/edk/implementation folder. Still I see Translate error when using PlanAhead to implement my design.
Errors:
a. BUffers of the same direction cannot be placed in series,
b. FCLK_CLK0 is driving non-buffer primitives

Any suggestions or pointers to start troubleshooting?

Thanks in advance !!

  • Sign in to reply
  • Cancel
Parents
  • Former Member
    0 Former Member over 13 years ago

    When you generate the VHDL template there should be ports which you have made external in XPS.  In the hardware tutorial at 2-4 they make the GPIO_LED_8bits external so it will now appear in the instantiation template.

    The simple_register is in the same position as the GPIO IP connected to the interconnect and your VHDL entity should be connected in the same way their debouncer.vhd file is.  (The files for the tutorial are located in the support directory in case you hadn't already found them)

    It might be possible to connect the entity as you were trying to in your original post, but you would need to edit the .pao files for your custom peripheral.  I think the way they do it is much easier to follow.

    So in summary:
    1. In XPS, Create your custom peripheral using the wizard
    2. Create the ports to connect that peripheral to your VHDL entity
    3. Rescan User Repositories and connect the ports as external
    4. In PlanAhead, Generate the top level VHDL (it should have ports for your peripheral because you made them external)
    5. Instantiate your VHDL entity as a component in the top level and connect it to the ports
    6. Sythesize, Implement, Generate Bitstream

    Hope that clears things up, if you need a further look at connecting additional ports to user_logic.vhd Chapter 9 of UG873 gives an example for a counter connected to the LEDs, but most of the steps are referenced from Chapter 6 of the EDK CTT after the in-depth look at the wizard.  Links Below:

    UG873
    http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_3/ug873-zynq-ctt.pdf

    EDK CTT
    http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_3/edk_ctt.pdf

    Matthew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • Former Member
    0 Former Member over 13 years ago

    When you generate the VHDL template there should be ports which you have made external in XPS.  In the hardware tutorial at 2-4 they make the GPIO_LED_8bits external so it will now appear in the instantiation template.

    The simple_register is in the same position as the GPIO IP connected to the interconnect and your VHDL entity should be connected in the same way their debouncer.vhd file is.  (The files for the tutorial are located in the support directory in case you hadn't already found them)

    It might be possible to connect the entity as you were trying to in your original post, but you would need to edit the .pao files for your custom peripheral.  I think the way they do it is much easier to follow.

    So in summary:
    1. In XPS, Create your custom peripheral using the wizard
    2. Create the ports to connect that peripheral to your VHDL entity
    3. Rescan User Repositories and connect the ports as external
    4. In PlanAhead, Generate the top level VHDL (it should have ports for your peripheral because you made them external)
    5. Instantiate your VHDL entity as a component in the top level and connect it to the ports
    6. Sythesize, Implement, Generate Bitstream

    Hope that clears things up, if you need a further look at connecting additional ports to user_logic.vhd Chapter 9 of UG873 gives an example for a counter connected to the LEDs, but most of the steps are referenced from Chapter 6 of the EDK CTT after the in-depth look at the wizard.  Links Below:

    UG873
    http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_3/ug873-zynq-ctt.pdf

    EDK CTT
    http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_3/edk_ctt.pdf

    Matthew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube