Spartan 3e FPGA Tutorial

spartan 3e analog to digital converter, spartan 3e fpga architecture, spartan 3e fpga board specifications, and How to program fpga spartan 3e pdf free download
Prof.SteveBarros Profile Pic
Prof.SteveBarros,United Kingdom,Teacher
Published Date:28-07-2017
Your Website URL(Optional)
Comment
Introducing the Spartan 3E FPGA and VHDL i Introducing the Spartan 3E FPGA and VHDLIntroducing the Spartan 3E FPGA and VHDL 1 / 122 Chapter 1 Introduction Hi I’m Mike Field (aka hamstersnap.net.nz). I want to help hackers take the plunge into the world of FPGAs Starting at purchasing an FPGA development board, and all the way through the process of getting their first project up and running. In this eBook, we will discuss the low level details of working with FPGAs, rather than diving straight into the System on a Chip (SOAC) level. I grew up in the 80s, when the 8-bit computer scene was happening, and on the back of my VIC 20 there was an edge connector where you could attach ’stuff. Armed with vero-board and a soldering iron, I made a few interfaces but my designs soon got larger than my pocket money could support. On my way to becoming a professional programmer, I toyed with digital logic and what was then called microelectronics designing with simple logic chips on a solderless breadboard and spent many evenings with graph paper sketching out and trying designs. Some even up to the scale of small CPUs In the late ’90s and early 2000s, microcontrollers with flash memory came on the scene, and I returned to playing with them as a hobby. They were cheap, relatively powerful and very accessible, but in the back of my mind were the graph paper designs of my late teenage years. I wanted to design the CPU, not just use it. One day, while reading Slashdot, I stumbled onto FPGAs and was hooked I’m hoping that this book will inspire a person with far better ideas than me to create something really cool. Hopefully, you are that person 1.1 What are FPGAs? Field Programmable Gate Arrays are, in essence, a chip full of digital logic (and other bits and pieces) where the connections between the components have not been decided upon at time of manufacture. Software tools are used to generate "configuration files" that contain the connections and initial values of all the components, which can then be downloaded to the FPGA. The distinguishing feature from other technology is that (usually) the designs are completely soft. That is, if power is removed you have a blank FPGA that can then be programmed with a different design (although most FPGAs can automatically download the design from a FLASH ROM chip). FPGAs first came to market in the late ’80s. Initially, they were seen as very large PLAs (Programmable Logic Arrays). During the early ’90s, their increasing size and flexibility allowed them to be used in networking and telecommunications applications as they separate the hardware and logic design phases of product development. This split development model allowed hardware vendors to quickly engineer solutions without the expense and time required to commission Application Specific Integrated Circuits (ASICs). During the late ’90s, FPGAs became more and more commonplace, replacing ASICs or enabling the use of advanced algorithms in consumer and industrial products for example, the system monitoring the data center where I work at is based around a Xilinx FPGA, and Xilinx FPGAs are used inside some HP storage subsystems I use.Introducing the Spartan 3E FPGA and VHDL 2 / 122 In the 2000s, educational institutes began integrating FPGAs into their digital design courses, and vendors were keen to supply them with development boards knowing that familiarity with the technology would help develop their markets. These boards (and their design software) are now available to the hobbyist community, opening up to the average hobbyist, a new world of adventure and excitement. For the price of a solderless breadboard, power supply and a few ICs, you can have the equivalent of hundreds of thousands of discrete logic chips to play with. Want to calculate MD5 checksums in hardware? Sure Want to implement an arcade game off the schematics? Why not Design your own CPU? You can do that too actually, you can design a complete computer if you really want to With one of these development boards, you have access to more resources than a corporation could muster 20 years agoIntroducing the Spartan 3E FPGA and VHDL 3 / 122 Chapter 2 Why learn to use FPGAs? For electronics and microcontroller buffs, the programmable logic on an FPGA is up there, next to working with "real hardware". The interfacing possibilities are endless with the right FPGA, you can talk to pretty much anything (DVI, HDMI, Fibre Channel, LVDS, PCIe, LVCMOS, LVTTL). Unlike working with chips and wires, the design, prototyping and debugging phases of a project using an FPGA are very fast. In the past, designing and building complex projects required the use of graph paper, discrete logic chips, breadboards and jumper wires, making it a slow and tedious project. However, in the world of FPGAs, after updating your design, all you have to do is press the "implement" button. In addition to being fast to use, designing and prototyping hardware is cheap a mid-range laptop and an FPGA development board is all you need for designs that would cost tens of thousands of dollars to build with discrete logic. For hobbyists, the best part is that when you are finished with one project, you can easily reuse your development board for the next. 2.1 What will you learn? By the end of this eBook, you should have: • A working knowledge of a subset of VHDL enough to complete most projects • Familiarity with the ISIM simulator, and have used it to debug an issue or two • Familiarity with all the major components of the Spartan-3E FPGA • Used nearly all the interfaces on your chosen FPGA development board • Transferred data to an FPGA over the USB host port (which is often overlooked in other books) • You may have even built a few custom interfaces that are not on the board These skills will send you well on your way to implementing your own projects such as: • Servo and motor drivers • Sensor interfaces for robotics • Digital Signal Processing for audio, video, or RF signals • Interfacing with any of the hundreds of low cost sensors that are now available, including but not limited to accelerometers and gyroscopes • You could even consider building your own CPUIntroducing the Spartan 3E FPGA and VHDL 4 / 122 2.2 A note to software-coder types If you are a coder, then your mind is presently wired to think about the flow of instructions running through a processor, running in a memory space. It really hurts to escape this mindset but please persist you will need to escape it if you are to make the most of FPGAs. Implementing efficient designs requires a very different way of thinking. In general, memory access is cheap, branches are inexpensive, parallelization is easy and serialization is hard. You need to be acutely aware of timings at design time rather than profiling code after implementation looking for hot spots. When you get confused, the things to remember are: • You are not writing a program • You are designing something akin to a (Very Very Very Very) VLIW CPU that only has a single instruction • It has the current state vector (stored in flip-flops and registers) • It uses the current state and any inputs to compute the next state • When the clock ticks it will then atomically stores this new state into the state vector. That’s it there are no loops (at least not in the sense you think of them now), there is no "do this then do that", there is no "flow" through the code it is all concurrent. There is pretty much only one unit of time a single tick of a clock signal. It can be quite freaky at times The good thing is that as a result of this mind shift you will start thinking in a more superscalar way, and as a result, your code will be a closer match to the underlying hardware. You may find yourself changing a few small habits that will improve the quality of your code. 2.3 Size of projects that are possible to implement in an FPGA A very low end FPGA (e.g. the Spartan 3E - 100 is equivalent to approximately 100,000 logic gates or 25,000 TTL logic chips. The largest FPGA in the same product range has 16 times as many logic elements with an equivalent gate count of 1.6 million gates. The easiest way to visualize this is to think in terms of solderless breadboards. A 40mm x 90mm breadboard can comfortably fit three 7400 series TTL chips and associated wiring, making the small FPGA equivalent to a 4.0m x 7.2m array of breadboards, each populated with three TTL logic chips. A large FPGA is equivalent to nearly a basketball court full of breadboards Having this much logic allows you to implement pretty much any design you can envision, and makes you appreciate the job that the design software does for you. 2.4 Why VHDL? Today there are two dominant Hardware Description Languages (HDLs) in use Verilog and VHDL. • VHDL is based on ADA, is strongly typed and very verbose. • Verilog is more like C loosely typed with lots of punctuation. Both languages are pretty much equally expressive anything you can do using one language you can also do in the other, and they can even be mixed and matched in the same project with far more fluidity than mixing languages in software design. For me, I find that the explicitness of VHDL makes it more explainable. I’m also from outside of the USA where VHDL seems to be the de facto standard for research and industry. I find Verilog code a bit like Perl. It is quick to write but it feels very "fast and loose" sometimes, it is very hard to tell what the heck is going on. For the size of projects in this course, use whatever language you like it is more about the underlying concept than the code. You won’t need it at the moment, but if you want to learn the other 90% of the VHDL language that is not covered here, snag yourself a copy of "Free Range VHDL". It is available on a web browser near you, at http://www.freerangefactory.org/Introducing the Spartan 3E FPGA and VHDL 5 / 122 Chapter 3 Prerequisite skills Here are the skills that I think are required for somebody wanting to learn to program FPGAs. None of these are essential, but I will assume that you have them during this book, and won’t bother delving into them. If you are particularly weak in any areas, then be prepared to learn • Programming ability in a low level language (e.g. C or assembler) Do you know what a byte is how many bits it contains and what values it can hold? What does a bit shift two bits to the left do? What happens when you treat an unsigned number as signed? Do you have any idea of the ASCII code for Z? • Familiarity with the basic boolean operations If you can draw the truth tables for AND, OR, NOT, NOR, NAND and XOR then you have all the skills needed this isn’t like the old days when you needed to simplify logic equations yourself, that is what computers are for. If you can draw a Karnaugh map and convert it into a logic equation then you are most probably overqualified in this area • An understanding of number representations and binary math If you can’t add binary numbers without a calculator, you will struggle. If you can divide or multiply in binary using a pen and paper, you will be fine. Throughout this book I only use the binary and decimal number systems. VHDL understands hexadecimal constants, but I don’t often use them as you are unable to tell if x"3F" is 8 bits, 7 bits or 6 bits in size but "0111111" is 7 bits, no questions asked. An innate sense of the size of numbers in binary will help you avoid problems. Being able to answer questions like "How many bits do I need to count to one million?" off the top of your head will be a big advantage. If you can’t do this, print out a table of the powers of two and stick it on the wall. Yes, I’m being serious when you spend hours trying to work out why your comparison of a 10 bit counter against 1523 is always false, you will kick yourself. • An understanding of circuit schematics used in digital designs helps You will be getting really close to the hardware, so although it is not essential for using FPGAs, the ability to look at the board’s schematics and seeing how the hardware works is very helpful. As all the development board schematics are available, it comes in handy when tracking down what external connections are used for on the FPGA. • Microcontroller development experience A little bit of microcontroller development experience is useful, but not essential. If you have played around in the embedded space you will have some familiarity with the sorts of problems you will encounter. You will also be familiar with how to debug without the help of high level debugging tools, and will be able to pick up the simulator much quicker. Yes, using an Arduino counts as microcontroller development.Introducing the Spartan 3E FPGA and VHDL 6 / 122 3.1 Other resources you will need • A modest PC is all you need A PC equivalent to a current entry-level laptop running either Windows XP, Windows 7 or Linux (Dual-Core CPU with 2GB RAM and 20GB free disk) is all you need. We are only using small FPGAs, so nothing high-end is required. • Internet access is a must You must have a broadband connection with an internet plan that enables you to download the multi-GB design software. It will also be helpful for downloading product documentation and seeking help. • Money, or a friend with an FPGA development board to lend Around US79 + p&p will get you a modest FPGA development board. Borrowing one is even cheaper, but unless you are really good at sharing don’t go halves with a friend in buying a board they are small enough to carry around with your laptop bag, allowing you to try things out when inspiration strikes or on a rainy lunchtime. Now, with all that out of the way, let’s move on to the interesting stuffIntroducing the Spartan 3E FPGA and VHDL 7 / 122 Chapter 4 Choosing your development board At the moment, I have six development boards. They are all different one is little more than an FPGA on a PCB, another has DRAM, ROM and a large breadboard attached. One thing I have learnt is that the more stuff there is on the board to experiment with, the more you will want to use it, and the more value you will get from it. To keep costs down, I have selected two of the least expensive development boards as the reference for this book The Papilio One with the LogicStart MegaWing, and the Digilent Basys2. Although they both feature a Xilinx Spartan 3E FPGA they have very different design philosophies. I really like the Gadget Factory boards, and Jack has been a big help supplying me with prototypes and designing the LogicStart MegaWing specifically for this book. If you are going to acquire a board and have no reason to go either way, get the Papilio One. All of the Papilio tools are open source and on GitHub, and the boards are really well engineered I have been able to generate full HD VGA signals off of a Papilio board, whereas I can’t get a stable 640x480 signal from the Basys2. When all is said and done, both boards are great, and you won’t be disappointed with either. 4.1 Why did I choose Xilinx FPGA, why not brand X? There are currently two big players in the FPGA market - Xilinx and Altera. Each vendor provides their own EDA tools and although they are talking the same language they are quite different (a bit like Eclipse vs Visual Studio). I had to pick one, and Xilinx’s tool set is the most approachable. If you are bold, you could work through this material with a different vendor’s development board, but it will be challenging at times. It will be very much like following a Visual C tutorial when running Eclipse. Consider using that vendor’s quick-start material for the first couple of projects then jump back in a few chapters on. The one place where you will really struggle is with using the simulator. The configuration and setup of the simulation tools differs greatly between vendors, with the Altera solution being tricky to set up.Introducing the Spartan 3E FPGA and VHDL 8 / 122 4.2 Papilio One + LogicStart MegaWing Designed by Gadget Factory, the Papilio One board is squarely aimed at someone who has had previous experience with basic electronics, owns a soldering iron, and quite possibly has a few Arduino microcontrollers kicking around. The Papilio One board holds the FPGA, a small serial ROM, a USB programming interface, and the required power supplies. It provides direct access to 48 general purpose pins on the FPGA through six 8-bit Wing connectors. Originally envisioned as an Arduino/FPGA hybrid, it is now used for projects such as software defined radio, emulating classic arcade games, and as a low cost way to experiment with FPGAs. The Papilio One board ships with the headers used for attaching the wings, but they are not installed. This gives you the added flexibility to embed the board in your own projects and most probably saves a little on cost as it simplifies packaging. When you solder on the headers, getting them aligned can be a challenge. An easy way is to use some snap off pin header strips to form a jig, which will hold everything nice and square while you solder the headers in place. The LogicStart MegaWing has been designed especially for people starting out with FPGAs, converting the Papilio One into something that matches the features and accessibility of the FPGA boards developed for the education market. When mated with a Papilio One, it adds a few nice extras that will appeal to the Papilio One’s target market, such as a small joystick, 8 channel ADC, and a 3.5mm audio jack. Once you have outgrown the LogicStart MegaWing, Gadget Factory offers a range of other Wings that can be attached to the Papilio One to customize it to your future project’s requirements, and it has an active community of helpful users on the forums hosted by Gadget Factory.Introducing the Spartan 3E FPGA and VHDL 9 / 122 4.3 Digilent Basys2 Digilent, Inc partners with Xilinx and designs and markets a range of FPGA development boards. The Basys2 is their entry level board, targeted at the education market with phrases like "Build digital circuits for less than the price of a textbook" in their marketing. They offer pretty sharp Academic and US Student discounts, but there are quite a few hoops to jump through to qualify. As the Basys2 has been used as the platform for course materials and textbooks, Digilent have far less freedom to add new features to the board for example, it still has a PS/2 port when no current PC ships with a PS/2 keyboard. Diligent also has an equivalent to Gadget Factory’s Wing system called PMOD. The Basys2 comes in a DVD sized plastic case with foam padding, and includes a USB cable. One feature of the Basys2 that is either a help or a hindrance, is that all externally available signals from the FPGA have resistors in series. This aids with ESD protection and helps to prevent damage from abuse in the classroom environment, but can sometimes cause interfacing issues. In my view the biggest flaw in the board is that Digilent have opted not to use a crystal to generate a stable on-board clock possibly to save cost (or maybe to remain compatible with the original Basys). The jitter present in its cheaper clock makes the Basys2 unsuitable for generating higher frequency signals for example, the VGA output is unusable for anything serious and most LCD monitors are unable to even sync with it There is a socket for a second clock signal, although the required part is expensive and hard to source. Note The part number in the BASYS2 reference manual is wrong order something like SGR-8002DC-PCC-ND from Digi-Key to provide a stable clock, should you require one. As I’m in New Zealand, I ordered mine from their ANZ distributor Black Box Consulting. They normally have everything in stock, so not only is it quicker than ordering from Digilent, the international shipping direct from Digilent is really, really, really expensive. Why is it you can get a Papilio FPGA board from Seeed Studios for US49.90 including postage, but it costs US36.66 to ship a 99 order from Digilent? Black Box Consulting charged me a reasonable AU10.00 for shipping. 4.4 A quick comparisonIntroducing the Spartan 3E FPGA and VHDL 10 / 122 Papilio One + LogicStart Digilent Basys-250 FPGA Spartan 3E Spartan 3E Effective Gate Count 250,000 or 500,000 100,000 or 250,000 Programming interface USB USB Configuration ROM Yes Yes VGA Connector and colour depth Yes, 8 bit Yes, 8 bit Four digit, Seven Segment display Yes, slightly bigger Yes Host communication interface Serial over USB 8 bit parallel (EPP) Maximum host transfer rate 300kB/s 170kB/s LEDs 8 8 Slide switches 8 8 Push buttons 1 (on joystick) 4, in a row Mini-joystick Yes No PS/2 port No Yes On-board clock 32MHz, stable 25/50/100MHz, jittery Carry case No Yes Analogue to digital converter eight 12-bit channels No Audio output Yes, mono No Additional power connector Barrel jack Two pin header ESD protection on all connectors No Yes Size Smaller, thicker Larger Open design Yes No USB cable supplied No Yes Add-on modules available Yes (remove LogicStart) Yes Maximum user I/O pins 48 (remove LogicStart) 12 + 2 on PS/2 Voltages available to add-ons 2.5V, 3.3V, 5V 3.3V Soldering required Yes, to attach headers No Designed to work with Arduino S/W Yes No Has geek factor? Yes, very underground No, used in collegesIntroducing the Spartan 3E FPGA and VHDL 11 / 122 Chapter 5 Installing the EDA tools The first step in using your FPGA is to install the tools required to implement your designs these are collectively called "Electronic Design Automation" (EDA) tools, but you can just as easily think of them as the VHDL IDE and compiler. 5.1 Acquiring the EDA software tools • The Xilinx ISE Design Tools are available for download from http://www.xilinx.com/support/download/index.htm. Be warned- - it is a very, very big download. You want the ISE Design Suite package called "Full Installer for Windows" or "Full Installer for Linux" one of the options given when you run the installer is to install the "cut down" WebPack version. • Xilinx supplies the Windows software in a UNIX tar.gz file. On Windows you will need something like 7-Zip to extract the installer software. It can be obtained from http://www.7-zip.org/download.html • Part way through the installation process you will need to register with Xilinx for a license file. The software will help you acquire the license during the install. The installer is very good at walking you through this, so don’t fret over it. • You will need the development board specific tools from the vendor to allow you to download designs to the board for the Papilio One you will need the Papilio Loader from http://papilio.cc/index.php?n=Papilio.Download and for the Basys2 you will need Adept 2 from http://www.digilentinc.com. If you don’t have an FPGA development board, you will still be able to work your way through the modules, but it is not the same without seeing the design run in actual hardware. 5.2 Setting up the software Unpack and install all the software the downloading hurts far more than the installing If working on Linux, search the web to find any missing dependencies. I have only used the Altera tools on Linux, and it was quite a challenge to get everything working correctly. If you have a Basys2 board you can play with the preloaded self-test application that is loaded into your board the Papilio One is shipped "empty". 5.3 Hints for Linux users From Andrei Barbu: ’The Digilent GUI tool seems to segfault quite a bit, at least under Gentoo. The workaround is to use their command line tool which is nicer anyway since it can be scripted.’ djtgcfg prog -d Basys2 index 0 file module2.bit "Y"Introducing the Spartan 3E FPGA and VHDL 12 / 122 Chapter 6 Your first project Getting the first design to work is always the hardest part. In this chapter we will virtually wire two switches up to two LEDs. On finishing this chapter you will have: • Created a new project • Created a new VHDL module • Entered basic code • Implemented the design • Set which I/O pins will be connected to which internal signals • Implemented the design again • Used the hardware programming tool for your board • Tested the design in hardware Wow That is a lot of learning for one sitting 6.1 Step 1 - Create a new Project This is pretty much a "follow your nose" task, however the target device settings must exactly match the FPGA you are using. • Click on "Xilinx ISE Design Suite 13.3 Studio" icon. In more recent version you may need to select "Start/Xilinx Design Tools/ISE Design Suite xx.y/ISE Design tools/64-bit Project Navigator". • From the "File" menu, choose "New Project" • Name the project "Switches_LEDs", and click on "Next".Introducing the Spartan 3E FPGA and VHDL 13 / 122 • This is the screen where you say what FPGA device you are using. Choose the following settings to tell the design tools what chip you are using (I’m using the 250,000 gate count XC3S250E - if you are using a different one then select XC3S100E or XC3S500E), then press the "Next" button. For the Papilio One 250Introducing the Spartan 3E FPGA and VHDL 14 / 122 For the Basys2 250 • Click on "Next", then click on "Finish" to create and open the new project 6.2 Step 2 - Create a new VHDL Module • Right-click on the design window, on the FPGA device, and choose "New Source" • Highlight "VHDL module" and in the file name enter "Switches_LEDs", then press the "Next" buttonIntroducing the Spartan 3E FPGA and VHDL 15 / 122 • This dialog box allows you to define what connections the module has. We need four connections two for the switches and two for the LEDs: • Click the "Next" button, then "Finish" to create the module and open it in the editor. Note To make things clearer, delete any line that starts with "". They are just comments that do not influence the design. library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity Switches_LEDs is Port ( switch_0 : in STD_LOGIC; switch_1 : in STD_LOGIC; LED_0 : out STD_LOGIC; LED_1 : out STD_LOGIC); end Switches_LEDs; architecture Behavioral of Switches_LEDs is begin end Behavioral; As you can see, it has created the definition for an entity called Switches_LEDs, with two inputs and two outputs STD_LOGIC is used to indicate what values these inputs and outputs can have. The architecture section is where you describe how the internal logic of the module actually works. For this project we use the "assignment" operator ("(") to assign the LEDs the values of the switches: library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity Switches_LEDs is Port ( switch_0 : in STD_LOGIC; switch_1 : in STD_LOGIC; LED_0 : out STD_LOGIC;Introducing the Spartan 3E FPGA and VHDL 16 / 122 LED_1 : out STD_LOGIC); end Switches_LEDs; architecture Behavioral of Switches_LEDs is begin LED_0 = switch_0; LED_1 = switch_1; end Behavioral; If you press the green "play" arrow in the middle left of the design window, the project should start building. If your code has been entered successfully, the project will build without any errors, and the design Window will now look like this: Great You’ve built your first design There is only one problem, and that is we haven’t told the design tools which pins to connect these signals to. 6.3 Step 3 - Creating constraints To tell the tools which physical pins should be connected to the VHDL inputs and outputs we need an "Implementation Con- straints File". Here’s how you add one: • From the "Project Menu" choose "New Source" • Select "Implementation Constraints File" and call it "constraints":Introducing the Spartan 3E FPGA and VHDL 17 / 122 • Click "Next" and "Finish" • In the design window, a small "+" will appear by the Switches_LEDs module. Click that to show the new file: • Double-click "constraints.ucf" to open it in the editor window • Add the following lines, which assign locations to the four wires, and instruct the tools to create a design that uses "LVTTL (Low Voltage Transistor Transistor Logic)" signal levels: Constraints for Papilio One NET switch_1 LOC = "P3" IOSTANDARD=LVTTL; NET switch_0 LOC = "P4" IOSTANDARD=LVTTL; NET LED_1 LOC = "P16" IOSTANDARD=LVTTL; NET LED_0 LOC = "P17" IOSTANDARD=LVTTL; Constraints for Basys2 NET switch_1 LOC = "L3" IOSTANDARD=LVTTL; NET switch_0 LOC = "P11" IOSTANDARD=LVTTL; NET LED_1 LOC = "M11" IOSTANDARD=LVTTL; NET LED_0 LOC = "M5" IOSTANDARD=LVTTL;Introducing the Spartan 3E FPGA and VHDL 18 / 122 Warning In the book I’m using the convention that LED0 is the rightmost LED, and LED7 is the leftmost LED. This does not agree with the component names silkscreened on the LogicStart PCB. The other way around does not make sense when you you display binary numbers on the LEDs. Save the changes to this file, and then once again click on the Green arrow to build the design. If that is successful, double-click on "Generate Programming File": You will now have a .bit file in the project directory that can be used to program the FPGA 6.4 Step 4 - Downloading the design into the device For the Papilio One, using Windows: • Connect your board to the USB port • In Windows Explorer navigate to the project directory and find the "Papilio Bit File" • Double-click on the file. It will bring up the following Window: • Just press enter • The design will be downloaded, and then the board will be configured with your designIntroducing the Spartan 3E FPGA and VHDL 19 / 122 For the Papilio One, using Linux • Connect your board to the USB port. If you are using a relatively modern distribution, two USB tty devices will be created by your operating system (i.e. /dev/ttyUSB’x’ and /dev/ttyUSB’y’). The x and y will be replaced by numbers. The lowered numbered device will be a conduit thepapilio-prog program uses to transfer the bitfile to your Papilio board. The higher numbered device can be used (with a program such as minicom) to connect to your Papilio board via its serial UART if your design included provisions for communicating via the UART (which this project has not). • From the command line, navigate to the project directory and find yourswitches_leds.bit bitfile. • If you placed yourpapilio-prog program somewhere on yourPATH then all you need to do to load your Papilio board with your bitfile is: papilio-prog -b switches_leds.bit If yourpapilio-prog program is not along yourPATH, you’ll need to invoke it by prefixing it with its explicit location. Note that if you receive an error somewhat like the following: Could not access USB device 0403:6010 It is probably because you need to be the super-user in order to issue thepapilio-prog command. You can either fix this by usingsu to become the super-user or prefixing the command withsudo.

Advise: Why You Wasting Money in Costly SEO Tools, Use World's Best Free SEO Tool Ubersuggest.