微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 写给FPGA初学者(来自一位从业30年的老工程师)

写给FPGA初学者(来自一位从业30年的老工程师)

时间:10-02 整理:3721RD 点击:

这是一篇转自xilinx使用者交流论坛的文章,作者是一名从业30多年的资深工程师(Systems/product/board/gate-level design engineer for over 30 years),我觉得写得很值得一读,所以就转载过来了。原文章链接为http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/m-p/219369
------------------------------------------------------------------------------------------------------------------------------------------
                                                   Help for new users
If you are a new user or visitor here, you are probably either casually surfing for interesting and useful information, or you have a frustrating problem which has you stopped in your tracks.
If you are new to Xilinx FPGAs and design tools, these online beginners' tutorials may be particularly helpful.
If you are stopped in your tracks, this post is written for you.  What follows are suggestions to get useful help as quickly as possible, based on thousands of posts in these forums.
1. Read the manual or user guide. Have you read the manual?  Do you know where to find the manual?
Many of the questions are answered with a simple and quick search of the FPGA family datasheet, or a related document. Of course, the first problem is locating the correct document -- there are 100s of them.  For most current software and device families, Xilinx provides a software tool for finding and accessing useful documents.  This tool is called DocNav, it installs on your PC, and you can download it with this .ZIP file link.
DocNav currently does not include documents for Spartan-3 generation devices, which are still very popular.
  • Spartan-3 family docs may be found here
  • Spartan-3a/3an family docs may be found here and here
  • Spartan-3e family docs may be found here

If you still can't find the right document to answer your question, even after searching the Xilinx website (see the search tool in the top right corner of the browser window), we'll try to help you.  Generally, finding and reading the document with the answer provides much better and more useful information and context for you, in less time, than waiting for someone to look up the information for you.

2. Search the forums for similar topics. If you are looking for Xilinx documents, use the Xilinx website search tool.

For both inexperienced and experienced designers, 90% of the problems and questions have been addressed before.  There is no "Technical FAQ" section for browsing the 100 most frequently asked technical questions.  Instead, you can search the user forums for any keywords which have been included in any and all previous posts and threads.  To narrow down the search, for better results, try using the 'advanced message search' tool.
If your search turns up 2,000 or so matches, and the first 15 don't answer your question, then no-one will fault you for giving up on the search and creating a new thread to post your question.

3. Please do not post the same question on multiple forums.

If you are in a panic and are desperate for help, you may be tempted to post your problem in several different forums.  Please do not do this.
  • In this user forum website, it's very easy to notice new posts in any of the user forums.  Your single post, in a single forum, will be noticed.
  • Duplicate posts clutter the forums with redundant threads, wasting the time of others who are also seeking needed information.
  • When helpful answers and advice are split between multiple threads, participants and readers alike have a hard time making sense of the discussion.


4. Please do not post a new topic or question on someone else's thread -- start a new thread
  • Interrupting a discussion with an unrelated topic or question isn't simply rude, it is considered disrespectful.
  • If your question or topic is unrelated (and unhelpful) to an existing thread, please start a new thread.
  • We want to avoid unreadable threads with 100s of posts which cover topics ranging from power supplies to memory controllers.  Such threads are of no benefit to the users who will follow after you, and a disservice to the creator of the thread who is also seeking help.

5. Students: Copying code is not the same as learning to design.
Students, please do not ask us to complete your class assignments for you.
  • This isn't fair to the volunteers in these forums
  • It robs you of the opportunity to learn how to work these problems out for yourself
  • You will likely have a solution which you do not understand and cannot replicate.

You will hopefully have a long design career ahead of you.  Make the most of the opportunity you have to train yourself to think for yourself.
6. "It does not work" is not a question which can be answered.
A very common problem seen in first-time posts is a vague problem description which is missing some (or all) useful detail.  If you want a useful answer, you will need to provide as much detail and context as possible.  Some of the following details might apply to your problem.  If you follow these suggestions, it will save time for everyone.
  • If you can, please describe the "big picture" of your problem, and not just the lowest level details.
  • If you get error or warning messages, please copy and paste these messages into your post.
  • If a certain line of your code is flagged as an error, when you post your code, please mark the line which was flagged.
  • Don't forget to specify which FPGA or FPGA family you are targeting

  • If you are using a development board, specify which development board, and not just the FPGA part number
  • If you have questions about interfacing to a specific device, include the device part number and links to the device datasheet and product webpage.
  • If you are using an ADC or DAC, keep in mind that there are 1000s of ADCs and DACs.  Please specify part numbers, and datasheet links are also appreciated.
  • Clocks and serial data are common discussion topics.  Don't forget to specify clock frequencies and serial data rates.

  • Text is a very limiting form. for technical discussions.  Diagrams of all sorts (timing diagrams, flowcharts, state diagrams, block diagrams, etc.) can be very helpful, especially where language barriers must be overcome.
  • Include a summary of what debugging you have already performed.
  • Does the problem show up in simulation, or only in real hardware (the simulation works, the board does not) ?
  • Is the problem consistent, or intermittent?
  • Can the problem be duplicated on more than one board, or does only one board have this failure?
  • Don't just describe what does not work, also describe what does work.  This helps narrow down the possibilities.

The extra time and effort of an adequately detailed problem description will save time and effort in the long run.
A useful and complete description of the design demonstrates that you understand your design and the problem.  Often, taking the time to describe your design will help you to organise your thoughts and your understanding -- and this will help lead you to the source of your problem.
7. You are not charged extra fees for comments in your code.
Another common problem is extensive sections of HDL code posted for review, without a description of how the code works or its intended function.  And without comments.  When trying to review source code which we are seeing for the very first time, well-written comments are a huge help.  If the code is not well described or commented, the volunteers may be less likely to spend the time and effort required to figure out what you are trying to implement.
Not only are well-written comments helpful to strangers reading your code, they are also helpful to you, the designer.  They help remind you of details you may forget over time, and they help you to quickly and easily assemble sections of your code into a larger design.
8. Many of the answers and responses in these forums are written by unpaid volunteers.
The volunteers in these forums are freely giving their time and expertise to assist you (and others).  These forums are not intended to replace direct end-user support from Xilinx (the WebCase portal, for example).  So, please do not be too hard on the folks trying to help you.
The volunteers are not Xilinx employees, and will not have access to internal Xilinx designs and technical secrets (including future product plans).  You may not be entirely fond of the advice or suggestions you receive, but try to accept such responses in the generous spirit with which they are offered.
-- Bob ElkindSIGNATURE: FAQ to newbies:
1. Read the manual or user guide. Have you read the manual?
2. Search the forums for similar topics. If you are looking for Xilinx documents, use the Xilinx website search tool.
3. Don't post the same question on multiple forums
4. Students: Copying code is not the same as learning to design
5. Don't post a new topic or question on someone else's thread, start a new thread!
6. "It doesn't work" is not a question which can be answered.
7. You don't get charged extra for comments in your code
8. If you want a useful answer, provide a useful amount of detail (with webpage and datasheet links, please!)
9. All ADCs and all DACs are NOT the same.
10. I'm not paid for forum posts. If I write a good post, then I've been good for nothing.

本文在复制过程中有若干超链接(蓝色部分)没有效果,如果想通过文中的超链接获取相关的资料,请移步到我的空间。

能不能翻译成中文啊

DocNav 还真的没有用过
楼上的 这些英文不难 我想你根本没有看就在要翻译
呵呵 你刚好和上面第五条吻合
5. Students: Copying code is not the same as learning to design.

Students, please do not ask us to complete your class assignments for you


       看英文应该会更加地道一些吧。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top