Editor's Note: As you will soon discover, the author – Sven – has created the most fantastic on-going tutorial on learning how to design with FPGAs from the ground up. This article is merely an introduction to Sven's tutorial which – at the time of writing – has 38 parts and is getting larger as we speak (the current contents list – with links to each section – is provided at the end of this "How To").


Hello there. My name is Sven Andersson. I have been designing ASICs for more than 15 years. A few years ago I realized that there was another player in town – the FPGA. With increasing NRE costs and with the long turn-around times,ASIC designs have become high-risk projects. At the same time, FPGAs are getting bigger and faster and many companies have therefore decided to use only FPGAs. For this reason, I decided to take a closer look at FPGAs. This is my story of how I (hopefully) will learn to use FPGAs in my future designs.

Learning-by-doing
John Dewey (1859-1952) was an American philosopher and educator whose writings and teachings have had profound influences on education in the United States. Dewey's philosophy of education, instrumentalism, focused on "learning-by-doing" rather than rote learning and dogmatic instruction, the current practice of his day.

For Dewey, it was vitally important that education should not be the teaching of mere dead fact, but that the skills and knowledge which students learned be integrated fully into their lives as persons, citizens and human beings. So . . . let's practice learning-by-doing.

Let's get started
In order to learn anything, it's best to have some "real-world" project to work with. On this basis, we will design an embedded system, implementing some form ofprocessor-controlled test equipment.

Thereafter, we will write a software device driver and an application program to run on our system. The first thing we will do is to put together a FPGA design checklist. A checklist is used to compensate for the weaknesses of humanmemory so as to help ensure consistency and completeness in carrying out a task.

FPGA design checklist

  • Make sure you have plenty of time to spare.
  • Find a decent computer.
  • If you can afford it, add a big display.
  • Decide which operating system to use.
  • Consider using a virtual machine (VM).
  • Select an FPGA vendor.
  • Pick out a suitable development board.
  • Select an embedded processor to use.
  • Download the FPGA design software.
  • Add the latest service packs.
  • Choosing a logic simulator.
  • Choosing a synthesis tool.
  • Learn C programming.
  • Read my tutorial (grin) .

Make sure you have plenty of time to spare
It will take some time to set everything up, find all the information scattered all over the place and solve all problems along the way. I started this project December 2006 and I have not finished it yet. Learning from my mistakes will save you some time.

Find a decent computer
Almost any X86 equipped computer will do the job, but if you plan for some larger designs you should use a Intel Core Duo equipped computer. I am an old Mac fellow and will of course use my newMacBook with an Intel Core 2 Duo processor running at 2 GHz. I will add a 23" Cinema display to provide a large screen area.

Decide which operating system to use
Here we have three choices. We can use a UNIX operating system like Solaris if we happen to have a SPARC workstation from SUN available, or we can use Windows XP or Linux on an X86 computer. For myself the choice is easy. Coming from a UNIX world I will use a Linux distribution. After trying out Ubuntu Linux I fell in love immediately.

Consider using a virtual machine
I could of course install Linux directly on my computer, but that would stop me from using Mac OS X at the same time, and that I don't like. A perfect solution is to install Linux in a virtual machine (VM). There are at least three ways of doing this as follows

  • Parallells Desktop
  • VMware Fusion
  • VirtualBox

After trying out Parallells Desktop and VMware Fusion, I decided to go with VMware Fusion.

Select an FPGA vendor
The two major FPGA vendors are Altera andXilinx. Choosing which one to use is not an easy decision. The deciding factor for me was the MicroBlaze soft processor from Xilinx.

Pick out a suitable development board
We could, of course, design an FPGA-based development system for ourselves, but using one of the development boards from Xilinx will make things much easier. Xilinx have a number of such boards in their catalog. Which one to pick? I decided to go for the ML403 board that has a Virtex-4 FPGA with a PowerPC 405 core. A cheaper alternative would be a Spartan 3 based board.

Select an embedded processor to use
As I mentioned earlier, I have already decided to use the MicroBlaze soft processor core. The MicroBlaze is a 32-bit Harvard RISC architecture optimized for Xilinx FPGAs. The basic architecture consists of 32 general-purpose registers, an Arithmetic Logic Unit (ALU), a shift unit, and two levels of interrupt.

Download the FPGA design software
The ML403 board is bundled with two software packages called the Integrated Software Environment (ISE) andEmbedded Design Kit (EDK). These packages contain all the software needed to design and implement an embedded system. The latest version of the software can be downloaded from the Xilinx web page atwww.xilinx.com.

Adding the latest service packs
As always with software products there are updates and bug fixes. These are delivered in service packs that have to be downloaded and installed. It's very important to ensure that you have the latest service pack(s) installed, because this will save you a lot of headaches.

Choosing a logic simulator
The Xilinx software includes a very simple Verilog and VHDL Simulator that runs only under Windows XP. The commercial simulators available fromCadence,Synopsys, and Mentor cost a fortune and are out of reach for the normal user. What to do? Fortunately, I managed to convince Cadence that it would be a nice idea to give me an evaluation license for theirIncisive Unified Simulator that I could use.

Choosing a synthesis tool
The Xilinx software comes with the XST Synthesis Tool. There are a number of synthesis tool out on the market but I find XST to be sufficient for my needs.

Learn C-programming
If you don't have any experience with regard to programming in C, you should find a good textbook and start learning it immediately. Why? Well, apart from being a very useful thing to know in general, all the Xilinx software device drivers are written in C.

How to design an FPGA from scratch-1_FPGA_8_24相关推荐

  1. ai芯片fpga_AI芯片技术趋势景观GPU TPU FPGA初创公司

    ai芯片fpga Major tech companies invest billions in AI chip development. Even Microsoft and Facebook ar ...

  2. 数字IC/FPGA设计面试与工作_sky

    请问:对于找工作刷题,怎么看? 热身有必要,但是规劝一句:题目是刷不完的.面试通过了,后面还得再工作15年.你咋刷? 得想的长远些.做题不是终点.刷题,面试为了啥? 建议刷题是补充,平时多积累数字IC ...

  3. 基于Testbench的FPGA实物自动化测试环境设计

    更多精彩内容,请微信搜索"FPGAer俱乐部"关注我们. 摘  要: 针对FPGA软件测试过程中仿真测试和实物测试的不足,提出了一种基于仿真测试用例的实物自动化测试环境,将用于仿真 ...

  4. 基于DSP+FPGA的多轴运动控制平台(一)硬件设计

    2 实验平台总体方案与硬件设计 2.1.1 实验平台的功能需求分析 针对便于多轴运动控制技术的研究,培养此方面技术的人才,实验平台应能 对多轴运动实现高速高精度的控制效果,同时保证系统开放性和兼容多种 ...

  5. ChipScope Pro分析仪

    ChipScope Pro分析仪 ChipScope Pro 分析工具(Analyzer tool)直接与ICON.ILA.IBA.VIO及IBERT核相连,用户可以实时地创建或修改触发条件. 注意: ...

  6. Avalon-MM 阿窝龙妹妹应用笔记

    Avalon Interface Special http://www.altera.com.cn/literature/manual/mnl_avalon_spec.pdf Avalon总线是SOP ...

  7. 基于ISE的设计实现基础

    所谓实现(Implement)是将综合输出的逻辑网表翻译成所选器件的底层模块与硬件原语,将设计映射到器件结构上,进行布局布线,达到在选定器件上实现设计的目的.实现主要分为3个步骤:翻译(Transla ...

  8. 编码程序教程_如何从编码教程到构建自己的项目

    编码程序教程 When learning how to code, I kept hearing the same advice. 在学习编码时,我一直听到相同的建议. "Tutorials ...

  9. 安恒 web类这可不是难题_如何消除您的前5个Web设计难题

    安恒 web类这可不是难题 This sponsored article was created by our content partner, BAW Media. Thank you for su ...

最新文章

  1. SHA204A加密芯片配置
  2. 洛谷 P1208混合牛奶【贪心】
  3. Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别
  4. [渝粤教育] 中国地质大学 结晶学与矿物学 复习题 (2)
  5. LSGO软件技术团队2015~2016学年第四周(0921~0927)总结
  6. 【HDU - 1257】最少拦截系统 (标解dp,贪心可过,最长上升子序列类问题)
  7. kafka中topic默认属性_分享:Kafka 的 Lag 计算误区及正确实现
  8. testufo测试刷新率测试_上手体验微星电竞显示器PAG301CR:200Hz高刷新率只是它的小亮点...
  9. java.io.FileNotFoundException:/mnt/sdcard/......(Permission denied)
  10. CVPR 2020|华为发布基于连续进化的CARS算法,0.4GPU天输出帕累托前沿
  11. 深度学习(一):神经元模型、感知机与BP算法
  12. mq选型:rocketMq和kafka对比
  13. 【MODIS数据处理#11】例六:绘制NDVI多年变化趋势空间分布图
  14. matlab——红绿灯颜色及数字识别(二)
  15. 如果房贷被拒了怎么办?
  16. 拟募资超10亿元,索辰科技能否成为科创板CAE软件第一股?
  17. 《C Primer Plus》5.11 编程练习
  18. Freebsd7 Xorg7.3 KDE3.5 桌面系统安装及美化
  19. sg-nc java_GitHub - ShingmoYeung/oss-sdk-java: java sdk for oss
  20. 2014福布斯中国名人榜:范冰冰压刘德华居首

热门文章

  1. 快速EDAS字体嵌入问题
  2. 065:ORM查询条件详解-gt、gte、lt和lte
  3. html 用户名限制,js对输入用户名的限制
  4. 联合证券|再创纪录,外资狂买超1000亿!券商、期货板块持续活跃
  5. 5G+Wi-Fi 6“双管齐下”,“双千兆”普及时代还远吗?
  6. 此文记录了我从研二下学期到研三上学期的找工历程,包括百度、腾讯、网易、移动、电信、华为、中兴、IBM八家企业的面试总结和心得--转...
  7. Java虚拟机不能满足_深入理解Java虚拟机--读书笔记1/3
  8. TypeScript 发布 4.9 beta
  9. 惠普Z820安装win10系统攻略(固态作为系统盘)——思小瓜
  10. Office 2007兼容工具包