Quartus II is Computer Aided Design (CAD) software that makes it easy to implement a desired logic circuit by using a programmable logic device like an FPGA. For this project, I would be specifying my desired circuit in Verilog hardware description language - Verilog Entry Level. The CAD flow involves certain steps which I'd divide into phases.
I have divided these 7 steps into learning phases and they include:
• Creating a project
• Design entry using Verilog code
• Synthesizing a circuit specified in Verilog code
• Fitting a synthesized circuit into an Altera FPGA
• Assigning the circuit inputs and outputs to specific pins on the FPGA
• Simulating the designed circuit
• Programming and configuring the FPGA chip on Altera’s DE2 board
I plan to play around with the Altera board during each learning phase, so I am going to feel free to be creative with the simplest of designs. I already started with the first phase, which is how to create a project on Quartus II. My plan is to learn the second & third by Tuesday 9/26/2011, fourth & fifth by Friday 9/30/2011 and finally sixth & seventh by Tuesday 10/4/2011.
Right now for my learning phase, I am working on a project I created for a two-way light control. Through the tutorial, I have learned to use the project wizard to create new projects and set the working directory to be used. I am also able to specify the type of device in which my designed circuit will be implemented. In my case, I would be choosing the device: "EP2C35F672C6" because it is the FPGA used on Altera’s DE2 board I'm using for this project. I realized a user can also specify any third-party tool to be used for instance a CAD software for electronic circuits e.g. Electronic Design Automation tools. I am currently working at the fastest pace I can and amazed by how much I have learned so far. The functionality and operation of FPGAs were a mystery to me before I started this research. So far I have not only learned how they operate, but also learned how they could be configured and if needed be reconfigured.
This reminds me of a Senior presentation I witnessed some years back where a student was able to reconfigure a router firmware to perform certain other operations like controlling an automated robot. I wondered how he was able to use verilog for this task but now I have a full understanding of the process. This has come a long way in motivating my research on FPGAs. The use of a router was an alternative to using an FPGA which could have been too expensive to afford.
Friday, September 23, 2011
Tuesday, September 20, 2011
ModelSim and Quartus II Design Software
Goal For Week of 9/12/2011
My goal for last week which was to first understand what I am working on. I was a able to accomplish this by reading up tutorials and online resources. FPGA was a new technology introduced to me, so I had to first do my homework. I did research to increase my insight on FPGA by speaking to my peers, professors and some research assistants.
I was able to understand how FPGAs work, and relate them to their application. I created a more vivid picture of how creative I could get using FPGAs. I also figured out the advantages of FPGAs over other technologies like ASIC due to its "field-programmable" feature. This gives the ease for updates and reconfigurations.
Goals For Week of 9/19/2011
My goal this week is to familiarize myself with the ModelSim-Altera Edition and Quartus II design software. I learned about it from a friend who suggested it while discussing about the project with him last week.
This way, it would be a lot easier to implement my high level design. I have downloaded and installed the software on my computer and since then been going over the tutorials as well as playing around with it.
I also installed ModelSim which was introduced to me in my Digital Electronics class. I have been used to the Eclipse IDE for verilog coding but through my research, I found ModelSim to be more specific with its functionality as opposed to other integrated environments.
I haven't finalized my decision on what I am going to be designing yet because I wish to project the limit of what could be done that would be highly interactive for kids on an FPGA.
My Microprocessors Application class this semester would be a huge resource for me while working on this research project as I would be working on FPGAs as well.
I have developed a background knowledge on what FPGAs are all about so far, but I would keep learning as I go on with the research.
Altera provides a couple of useful online tools and guides on how to use the Quartus II and ModelSim software so I would be using them in effort to accomplish this week's goals.
However, I wouldn't limit myself to just the online resources, I also copied the tutorial files from the Altera DE2 CD. I am taking every step possible to meet my goal for this week.
My goal for last week which was to first understand what I am working on. I was a able to accomplish this by reading up tutorials and online resources. FPGA was a new technology introduced to me, so I had to first do my homework. I did research to increase my insight on FPGA by speaking to my peers, professors and some research assistants.
I was able to understand how FPGAs work, and relate them to their application. I created a more vivid picture of how creative I could get using FPGAs. I also figured out the advantages of FPGAs over other technologies like ASIC due to its "field-programmable" feature. This gives the ease for updates and reconfigurations.
Goals For Week of 9/19/2011
My goal this week is to familiarize myself with the ModelSim-Altera Edition and Quartus II design software. I learned about it from a friend who suggested it while discussing about the project with him last week.
This way, it would be a lot easier to implement my high level design. I have downloaded and installed the software on my computer and since then been going over the tutorials as well as playing around with it.
I also installed ModelSim which was introduced to me in my Digital Electronics class. I have been used to the Eclipse IDE for verilog coding but through my research, I found ModelSim to be more specific with its functionality as opposed to other integrated environments.
I haven't finalized my decision on what I am going to be designing yet because I wish to project the limit of what could be done that would be highly interactive for kids on an FPGA.
My Microprocessors Application class this semester would be a huge resource for me while working on this research project as I would be working on FPGAs as well.
I have developed a background knowledge on what FPGAs are all about so far, but I would keep learning as I go on with the research.
Altera provides a couple of useful online tools and guides on how to use the Quartus II and ModelSim software so I would be using them in effort to accomplish this week's goals.
However, I wouldn't limit myself to just the online resources, I also copied the tutorial files from the Altera DE2 CD. I am taking every step possible to meet my goal for this week.
Friday, September 16, 2011
Update: Understanding FPGAs
FPGAs allow firmware which is stored in non-volatile memory, such as ROM to be modified without disassembling the device or returning it to its manufacturer. This aids in the development and rapid deployment of digital electronic devices. FPGAS are the modern-day technology for building a breadboard or prototype from standard parts.
Firmwares are fixed, usually rather small, programs and/or data structures that internally control various electronic devices. Firmwares are typically involved with very basic low-level operations without which a device would be completely non-functional. High-level firmware is typically stored as a configuration of charges, while low-level firmware may instead be regarded as actual hardware in itself. Hardwares just like softwares can be designed modularly, by creating subcomponents and then higher-level components to instantiate them. Moreover, unlike most modern operating systems, firmwares rarely have well-evolved automatic form of updating itself to fix any functionality issues detected after shipping the unit from the manufacturer.
FPGAs contain programmable logic components (logic blocks) and reconfigurable interconnects that would allow the blocks to be wired together. It is like a lot of logic gates that can be interconnected in a lot of configurations. Logic blocks are often configured to perform complex combinational functions or just simple logic gate functions like AND and XOR. Some FPGAs have logic blocks with memory elements which could be simple flip-flops or more complete blocks of memory.
Firmwares are fixed, usually rather small, programs and/or data structures that internally control various electronic devices. Firmwares are typically involved with very basic low-level operations without which a device would be completely non-functional. High-level firmware is typically stored as a configuration of charges, while low-level firmware may instead be regarded as actual hardware in itself. Hardwares just like softwares can be designed modularly, by creating subcomponents and then higher-level components to instantiate them. Moreover, unlike most modern operating systems, firmwares rarely have well-evolved automatic form of updating itself to fix any functionality issues detected after shipping the unit from the manufacturer.
FPGAs contain programmable logic components (logic blocks) and reconfigurable interconnects that would allow the blocks to be wired together. It is like a lot of logic gates that can be interconnected in a lot of configurations. Logic blocks are often configured to perform complex combinational functions or just simple logic gate functions like AND and XOR. Some FPGAs have logic blocks with memory elements which could be simple flip-flops or more complete blocks of memory.
Tuesday, September 13, 2011
Update 9/13/2011: Verilog HDL & Algorithm
I have decided that the HDL I am going to use is Verilog. As a step forward in my project, I have decided to revise and refresh my knowledge on verilog coding. I went over various tutorials and techniques. I am yet to go over materials for the Altera FPGA but I am pretty much developing an algorithm for my design as of right now.
I'd like to divide my project into 5 different parts;
1. Specification: This is the point at which I would define the parameters in my design that I plan to use.
2. High Level Design: This is the point where I define various blocks/modules within my design and how they communicate with each other
3. Low Level Design: This is the point where I define how each block is implemented
4. RTL Coding: This is the point where I convert my low level design into verilog code
5. Simulation: This is the point where I verify the functionality of the model of program I wrote in verilog
Saturday, September 10, 2011
Altera DE2 - Cyclone II 2C35 FPGA
First question would be what is an FPGA (Field-Programmable Gate Array)?
A field-programmable gate array (FPGA) is a semiconductor device that can be programmed after manufacturing. Instead of being restricted to any predetermined hardware function, an FPGA allows you to program product features and functions, adapt to new standards, and reconfigure hardware for specific applications even after the product has been installed in the field—hence the name "field-programmable". You can use an FPGA to implement any logical function that an application-specific integrated circuit (ASIC) could perform, but the ability to update the functionality after shipping offers advantages for many applications.
FEATURES
source: http://www.altera.com/products/fpga.html
A field-programmable gate array (FPGA) is a semiconductor device that can be programmed after manufacturing. Instead of being restricted to any predetermined hardware function, an FPGA allows you to program product features and functions, adapt to new standards, and reconfigure hardware for specific applications even after the product has been installed in the field—hence the name "field-programmable". You can use an FPGA to implement any logical function that an application-specific integrated circuit (ASIC) could perform, but the ability to update the functionality after shipping offers advantages for many applications.
FEATURES
| FPGA |
|
| I/O Interfaces |
|
| Memory |
|
| Displays |
|
| Switches and LEDs |
|
| Clocks |
|
source: http://www.altera.com/products/fpga.html
Introduction
My Name is Hassan A Badru, a Computer Engineering concentration and I am currently a senior gradually May 2012 at Morgan State University.
I am currently working with Dr Lawrence Walker on a research project which requires me to make the Altera Cyclone II 2C35 FPGA highly interactive for kids. This would be a challenging project as I would need to first understand what kids enjoy which includes colors, lights, voices and buttons.
As a computer engineer, I am bounded by system requirements as result I would need to set system requirements. I would make children interactivity be my first requirement. As I move further, other requirements would surface and I would be forced to implement them into my design.
My next challenge would be the design and lastly construction and implementation.I would need the knowledge of digital signal processing and hardware description language while working on this project.
Ideas For Project
1. Speech recognition - by first training the device with a signal, then comparing with trained signal.
2. Voice change - receiving voice/signal, then process the signal and finally output the modified signal.
3. Rhythmic lightning - letters and number displayed in rhythmic pattern.
4. Photo Morph - allow user to take a face snapshot, and then get it morphed on a display screen.
I am currently working with Dr Lawrence Walker on a research project which requires me to make the Altera Cyclone II 2C35 FPGA highly interactive for kids. This would be a challenging project as I would need to first understand what kids enjoy which includes colors, lights, voices and buttons.
As a computer engineer, I am bounded by system requirements as result I would need to set system requirements. I would make children interactivity be my first requirement. As I move further, other requirements would surface and I would be forced to implement them into my design.
My next challenge would be the design and lastly construction and implementation.I would need the knowledge of digital signal processing and hardware description language while working on this project.
Ideas For Project
1. Speech recognition - by first training the device with a signal, then comparing with trained signal.
2. Voice change - receiving voice/signal, then process the signal and finally output the modified signal.
3. Rhythmic lightning - letters and number displayed in rhythmic pattern.
4. Photo Morph - allow user to take a face snapshot, and then get it morphed on a display screen.
Subscribe to:
Comments (Atom)
