Exploring HDL Programming: My 2-Week Microcontroller Project

In summary: That way you won't be so lost.In summary, this student has designed and implemented a primitive microcontroller hardware architecture from scratch, which includes 2 byte instructions, 128 byte ROM, 63 different instructions, an ALU, ROM and Processor module, 16 byte deep stack, 8 byte of byte addressible RAM, and 1 byte of bit addressible RAM. This hardware architecture completed in just 2 weeks with little effort. The significance of this project is unknown, but the student is interested in pursuing a CE certification.
  • #1
Mastermind_14
16
0
Hi people!

I am a student of Electrical engineering (5th semester) and have a profound interest in HDL (ie. verilog) Programming. For my 5th semester project of Digital System Design i have designed and implemented a primitive microcontroller Hardware architecture from scratch having...

>All 2 byte instructions
>128 byte ROM
>63 different instructions including Jumps,call/return,push/pop ,CJNE, DJNZ etc(most of 8051 and PIC18f452)
>ALU, ROM and Processor are separate modules inside the main module "IC"
>16 byte deep stack
>8 byte of byte addressible RAM
>1 byte of bit addressible RAM
>Time shared architecture of busses
>Machine cycle of 1 clock cycle
>and many more

This hardware architecture that i have thought of and implemented in Verilog with greatest level of detail was completed in just 2 weeks with little effort which made me eager to explore this HDL even more and pick even more challenging projects. so if you can guide me to some challenging project or want to know about this microcontroller implementation in verilog then please PM me or post to this thread.

Furthermore does this project of mine has any more significance then just serving my academic purposes? If yes then what is the significance? and if no then in what direction should i spend my HDL programming skills such that I might get some recognition ( credited for doing something unique and useful )?

NOTE: An image of the Instruction architecture has also been uploaded to give a vague idea of what I am saying.
 

Attachments

  • INSTRUCTION ARCHITECTURE.jpeg
    INSTRUCTION ARCHITECTURE.jpeg
    31.9 KB · Views: 465
Engineering news on Phys.org
  • #2


You can look into things such as instruction pipelining, datablock moves, high level language hardware layer, intelligent branch select opcode prefetch, risc and parallelism, aisc, dsp architecture, harvard architecture, memory control.
 
Last edited:
  • #3


Phrak said:
You can look into things such as instruction pipelining, datablock moves, high level language hardware layer, intelligent branch select opcode prefetch, risc and parallelism, aisc, dsp architecture, harvard architecture, memory control.

Dear Phrak,

First of All thanks for your reply.Now the thing is that I have already employed

>risc and parallelism
>harvard Architecture
>datablock moves
>memory control

While I did not find any use of

>instruction pipelining
>intelligent branch select opcode prefetch

This is because I designed and implemented the architecture in a HDL with no intention of implementing it on FPGA (unless it is worth implementation) so I designed it such that the input and output data throughout the microcontroller is multiplexed on negative level and positive level of the clock respectively. So this cannot be optimized more then a single clock cycle while every process is completed with just zero time delay and pipelining would mean adding latency for no increase in clock speed. Same is the case with prefetching of opcode.

Though I find aisc and dsp architecture the next fields that I should explore so thanks for this suggestion.

I want to know a few more things.

>The main question remains unanswered "Does this project of mine has any more significance then just serving my academic purposes?"

>Is Verilog being currently employed to implement and simulate microcontroller architectures in the Industry? If yes then which companies are doing this?
 
  • #4


It wasn't apparent from you initial post what all you'd been doing. I'd though perhaps a bare bones micro, and so the seggestions for what you might pursue. I haven't done any of this in 15 years, so I'm out of this loop, but there are all kinds of games you can play with the clock. The external clock can drive an internal frequency multiplier, so that you can generate multiple internal clocks with edges just about anywhere you want them.

What your doing should give you some background if you intend to pursue a CE. I hope someone else has better answers than I.
 
  • #5


I didnt understand what you mean by

Phrak said:
What your doing should give you some background if you intend to pursue a CE.

Can you please elaborate it.
 
  • #6


Mastermind_14 said:
I didnt understand what you mean by ...
Can you please elaborate it.

I re-read your first post. I see you are an EE student, rather than CE. Either way, it should serve just as well. But next time you speak to an engineer, ask him of what he learned in school applies to his current job.
 

FAQ: Exploring HDL Programming: My 2-Week Microcontroller Project

What is HDL programming?

HDL (Hardware Description Language) programming is a type of computer programming used to design and simulate digital circuits. It is commonly used in the development of microcontrollers, which are small, low-cost computers used in various electronic devices.

What is the purpose of "Exploring HDL Programming: My 2-Week Microcontroller Project"?

"Exploring HDL Programming: My 2-Week Microcontroller Project" is a project where I will document my journey of learning HDL programming by creating a simple microcontroller project within a span of two weeks. The purpose of this project is to share my experience and knowledge with others who are interested in learning HDL programming.

What is a microcontroller?

A microcontroller is a small, low-power computer that is designed to control electronic devices. It contains a processor, memory, and input/output peripherals, which allow it to perform various tasks such as reading sensors, controlling motors, and communicating with other devices.

How did you approach this project?

I approached this project by first familiarizing myself with the basics of HDL programming and microcontroller architecture. Then, I designed a simple circuit using a HDL language called Verilog and simulated it using a software called Quartus Prime. Finally, I implemented the design on a physical microcontroller board and tested its functionality.

What are the benefits of learning HDL programming?

Learning HDL programming allows you to design and simulate digital circuits, which are essential components in various electronic devices. It also helps in understanding the inner workings of microcontrollers and how they can be programmed to control and interact with different types of devices. Additionally, HDL programming is a valuable skill in the field of electrical and computer engineering, making it a valuable skill for career advancement.

Back
Top