Need a layout/map on what to learn to acheive the following project

  • Thread starter kidman
  • Start date
  • Tags
    Project
In summary, this 2nd year EE student is interested in learning more about programming FPGA's and CPLD/FPGA systems. He has found some helpful resources, but would like to learn more. He recommends starting with just one portion of the project, and learning HDL and PAL/CPLD design. If he can convince a few other students to join him, he hopes to have a team that can compete in an EDA competition by the end of his senior year.
  • #1
kidman
3
0
Hey there...

I am a second year EE student and I have always been interested in knowing FPGA,ASIC,HDl's...etc but I never had a chance to sit down and start learning them.Fortunately a design contest has been prepared for college students by a very well known company in EDA and I want to join this contest but I need to know what I should start learning and where can I get learning resources.This is the description of the project.Thanks in advance

--------------------------------------------------------------------------

Automotive Bus Analyzer and Emulator (ABAE)

Abstract:

This project aims at developing a hardware FPGA based bus analyzer and emulator. This will enable the user to monitor frames on the automotive bus and will enable him to send frames and emulate certain scenarios. Typical automotive buses are CAN, LIN and Flexray. The analyzer will monitor and inject frames in an on-line interaction with different electronic control unit (ECU) on bus. It’s also required to build higher PC interface

Project Description:

The ABAE is a System-on-Chip that communicates with an automotive bus. Implementing CAN, LIN, and Flexray controllers, is a necessary step. Having a microcontroller core and necessary peripherals is also a basic building block. The ABAE will also communicate with the high-level software through a serial interface. This project consists of design, implementation and testing the ABAE with a real automotive bus with required topology.

Product Features:
• Hardware implementation of CAN controller.
• Hardware implementation of LIN controller.
• Hardware implementation of Flexray controller.
• Integration with relevant transceivers.
• Reuse/development of different required open-cores
• Hardware implemented USB interface.
• High-level software enabling the user to:
a. Receive/receive different types of frames.
b. Emulate bit/frame level errors on bus
c. Execute higher level automation scripts
 
Engineering news on Phys.org
  • #2
That sounds like an excellent (and very real world) project! It also sounds like a bit much for a 2nd year EE student, but I definitely encourage you to use it as motivation for learning more about developing projects that involve uC and CPLD/FPGA building blocks.

One of the best first steps is to download the free WebPack FPGA design software from Xilinx, and the QuartusII design software from Altera:

http://www.xilinx.com/ise/logic_design_prod/webpack.htm

http://www.altera.com/products/software/products/quartus2/qts-index.html

The Xilinx package especially is really amazing in its capability, considering that it is available free.

Then I would suggest starting out by taking just one portion of the design contest project, and learning how to design an FPGA for that portion. In addition to the design software, Xilinx has a large amount of tutorial information on their website.

Does your school offer any kind of CPLD/FPGA classes with labs?
 
Last edited by a moderator:
  • #3
Unfortunately not.But I can probably convince my TA's and Professors to teach me FPGA's.But the problem is that I need to know what to learn first cause I have zero knowledge in this field
 
  • #4
Have you learned about state machines and logic design yet? That's basically what CPLD and FPGA designs are -- implementing the state machines, MUXes and other logic, along with the IOs out to the external circuitry. The best place to start is with PALs -- you can even get them in DIP packages to make them easy to prototype with. The 22V10 is an example of a jellybean PAL.

Xilinx has a neat little book, "Introduction to Programmable Logic" that comes with some of their design kits (I think that's where I got it). A condensed text version is here:

http://www.xilinx.com/company/about/programmable.html

Ooo, and I found this nifty book at the Xilinx website as well:

http://www.xilinx.com/publications/products/cpld/logic_handbook.pdf

So I'd recommend starting with the QuartusII software and desiging a couple PAL/CPLD projects -- just simple stuff like a traffic light controller or elevator controller or something. Those are nice too, because since you are interfacing with sensors that can give you a signal at any time (asynchronous to your CPLD system clock), you need to learn about synchronizing input signals to your system clock, which is VERY important in real-world designs.

You can initially start coding your PAL/CPLD/FPGA projects in HDL (hardware design language), which is pretty intuitive and easy to learn. Later, though, you should start using Verilog/RTL (what is used in Silicon Valley the most), or VHDL (which is popular elsewhere, and probably easier to learn).

If you can also interest a few other students to go down this learning path with you, then by your senior year, you should be able to organize a team to compete in the EDA competition. You will need a project manager, and you will need to divide up the tasks and make sure that the whold team stays synchronized (no pun intended) and productive and creative.

Best of luck!
 
Last edited by a moderator:

Related to Need a layout/map on what to learn to acheive the following project

1. What type of layout or map should I use to plan out my project?

The type of layout or map you use will depend on your personal preference and the complexity of your project. Some common options include flowcharts, mind maps, and Gantt charts. It's important to choose a format that allows you to clearly visualize and organize your project goals and tasks.

2. How do I know what skills or knowledge I need to learn for my project?

Start by clearly defining your project goals and objectives. Then, break down each goal into smaller tasks. From there, you can identify any skills or knowledge gaps that you may have and prioritize which ones you need to learn in order to successfully complete your project.

3. Should I learn everything before starting the project or learn as I go?

This will depend on your personal learning style and the complexity of your project. Some people prefer to have a solid understanding of all the necessary skills before starting a project, while others prefer to learn as they go. It may be helpful to have a basic understanding of the skills required before starting, but it's also important to be flexible and open to learning new things along the way.

4. How do I create a timeline for my project?

A timeline is an essential part of any project plan. Start by identifying all the tasks and subtasks that need to be completed for your project. Then, estimate the amount of time each task will take and create a schedule that includes deadlines for each task. Be sure to factor in any potential roadblocks or delays that may arise.

5. What resources are available to help me learn the necessary skills for my project?

There are many resources available to help you learn new skills for your project. These can include online courses, tutorials, books, and even mentorship or networking opportunities. It's important to research and identify the best resources for your specific project needs and learning style.

Similar threads

Replies
2
Views
2K
Replies
2
Views
1K
  • STEM Academic Advising
Replies
5
Views
1K
Replies
8
Views
3K
Replies
1
Views
2K
Replies
23
Views
5K
Back
Top