Learn by doing! From simple logic gates upto functioning 16-bit microprocessor. Dive into the fundamentals of microprocessor design and verification, and gain hands-on experience in the world of hardware engineering. This course provides a comprehensive introduction to hardware design principles, the Verilog hardware description language, and modern verification methodologies. Learn to design a fully functional 16-bit processor, understand machine code and assembly language, and explore how processors execute programs. With real-world tools and industry-relevant techniques, this course equips you with the skills to become proficient in processor architecture, digital logic design, and verification processes.
Course language: The course material will be provided exclusively in English, as most hardware design resources available on the web are in English, and being able to read and comprehend English is a prerequisite for this course. However, the lectures and meetups will be flexible in their approach to ensure that your understanding remains the top priority. Whether it’s in Kazakh, Russian, or English, the goal is to create an inclusive environment where concepts are clear and accessible to everyone.
Don't miss out! The course starts on . Get ready to start an exciting journey into the world of microprocessor design and verification!
Days
Hours
Minutes
Seconds
This course will be evaluated as an academic university course.
Based on your final grade, you’ll receive different privileges and recognition at the end of the course.
Your final grade will be determined based on the following breakdown:
✅ 70% from the labs;
✅ 20% from quizzes;
✅ 10% from attendance at online and offline sessions.
This course is designed for beginners eager to learn hardware design from the ground up. Starting from simple logic gates, you’ll progress all the way to creating a fully functional 16-bit microprocessor. Through hands-on labs and real-world tools, you’ll gain a strong foundation in hardware engineering, including design principles, Verilog, and modern verification methodologies. Along the way, you'll master essential skills in processor architecture, machine code, assembly language, and digital logic.
While no prior hardware experience is required, basic programming knowledge is recommended. Familiarity with C++ and comfort in a Linux environment will help you work more smoothly with the tools we'll use. If you’re excited about the field but need to brush up on these prerequisites, we can provide additional resources to get you started!
Nursultan Kabylkas is an Assistant Professor at Nazarbayev University with a passion for advancing the semiconductor industry in Kazakhstan. A graduate of the University of California, Santa Cruz, Nursultan brings a wealth of experience from his time in Silicon Valley. During his graduate studies, he interned at Esperanto Technologies, where he contributed to the design of a multi-core AI accelerator. He also interned at AMD, where he continues to play a role in their GPU ISA project.
Nursultan is a firm believer in the untapped potential of Kazakhstan to become a global leader in semiconductor technology. He envisions a future where Kazakh developers make their mark on the field, propelling a Kazakh company to the forefront of the semiconductor industry. With a rapidly changing landscape in chip design, he is driven by the vision that one day, a top semiconductor company will emerge from Kazakhstan.
When I started the course, I was really new to hardware. I didn’t even know what it was or how to work with it, so it was pretty challenging at first. But with the professor’s help, I learned a lot, from digital circuits to how processors work. My favorite part was learning through hands-on practice. I even designed my own processor from scratch.
This course is well-structured, and the gradual process of learning makes the material easy to understand. I came to this course with doubts and zero knowledge - now I love this field and have a core understanding of how ISA should work. Starting this course was a life-changing decision for me, and I believe it can become one for others too.
Great introduction to microprocessor design and verification! The material is well-organized, and everything is explained very clearly. By taking this course, I learned a new language (Verilog), gained a better understanding of ISA design, and learned new verification techniques that I never studied before. The course is highly practical, with tons of labs, but having your self-crafted processor at the end and being able to write programs for it was very satisfying and worth the time and effort.
This course is a breath of fresh air among CS courses. For the first time, I truly felt like I was doing something meaningful. What sets this course apart is how it introduced me to the world of hardware design, something I hadn’t explored before. While everything comes with its challenges, the small steps we took each time helped me gradually build and improve my processor design. Before starting the course, I couldn’t have imagined that I would design that processor architecture all by myself.
Course provided an important hands-on experience in both the design and verification of microprocessors. Writing a microprocessor in Verilog was a great exercise in understanding low-level hardware design, from creating registers and ALUs to implementing control logic. The verification was no less challenging, requiring a deep understanding of testbenches, simulation tools, and the creation of comprehensive test cases. So, If you want to deepen your knowledge of microarchitecture and gain practical hardware design and verification skills, this course is a great choice.
This program helped me develop my intuition about hardware. Theory is, of course, valuable, but when you build something, you encounter certain aspects firsthand, which gives you a deeper understanding of processors—even if it’s a simple one.
The course offers a comprehensive introduction to the fundamental concepts of microprocessor design, emphasizing both theoretical principles and practical verification techniques. It is well-planned and structured, with clear explanations, engaging lab assignments, and access to valuable resources. Professor Kabylkas created a supportive learning environment that encourages critical thinking and problem-solving, ensuring that students not only grasp the material but can also apply it in real-world scenarios by building projects. One of the highlights of the course was the building of a project, where we had the opportunity to design and build a fully functional microprocessor. At first, it was scary to me (the person who had 0 practical knowledge about the processors), but the step-by-step instructions and constant feedback from the Professor made it challenging and entertaining at the same time. In my humble opinion, this course is "musthave" for anyone pursuing a career in electrical engineering or computer science.
Microprocessor Verification was the most interesting course I took this fall, offering a solid introduction to hardware engineering. It’s ideal for those who enjoy building systems from scratch, as we constructed a microprocessor complete with an ALU, memory, and a control unit capable of reading ISA instructions, managing the entire instruction flow . The course strikes a great balance between theory and hands-on implementation, making it a bit challenging yet very rewarding. The professor was consistently approachable and supportive, always ready to help with questions or debugging issues. For anyone considering a career in hardware design or embedded systems, this course provides an excellent intro into this specific domain.
I really enjoyed this course. Before taking this course, my knowledge about computer systems was limited to a basic understanding of processors, assembly language, and binaries (from NU course CS231). However, this course gave me a much deeper understanding of how processors are designed, how they execute binary instructions, and how they interact with memory. As part of the coursework, I even created my own Turing-complete assembly language. The code of this language can then be converted into binary code and run on a processor to produce meaningful results.
We also explored advanced processor architecture topics, like branch prediction, cache coherence, and pipeline hazards. While these were covered briefly during lectures, it was enough to grasp how they work at an industry-standard level. Overall, I would highly recommend this course—not just for those interested in hardware development and computer engineering, but also for software engineers and computer scientists. Understanding how computers work at a low level is incredibly valuable for debugging and diagnosing potential issues.
The course is incredibly well structured, making it accessible even to someone like me, an electrical engineering student, despite being designed for CS students. The clear explanations and practical examples bridged the gap between disciplines, allowing me to grasp the concepts with ease. The clear explanations and practical examples made even complex concepts accessible. Through this course, I discovered my passion for this field and gained the confidence to pursue it further. I’m excited to continue improving my skills and building on the strong foundation this course provided.
This is a great course that builds a solid foundation in hardware design, verification, and computer architecture. It covers a diverse range of topics, from logic design fundamentals to modern processor architectures. Each lab exercise builds on the previous one, gradually enhancing the processor by adding additional capabilities and modules at each step. Through hands-on experience, I learned about the way processors operate and optimization techniques used to enhance performance.
In this course, I acquired basic skills and knowledge about microprocessor design and verification. All learning happens in practice, by the end of the course we designed and verified a 16-bit processor with 21 operations. These practical assignments gave me a deeper understanding of previous courses on computer architectures. I also learned how to work with verilog, and combine it with c++. The most interesting part of the course was developing an emulator for the processor and cosimulation verification done with help of the emulator as a golden model.
This course has been an incredible journey in understanding the complexity of computer architecture, low-level programming, and the interaction between software and hardware. The progression from creating simple digital logic circuits to designing our own processor has been as challenging as it is rewarding. The course has taught me to think like a true hardware engineer, always keeping in mind the HDL mantra: "I am describing a physical hardware." Not only did I learn how to design hardware, but I also learned how to verify it, which strengthened my C++ skills. Anyone looking to begin their journey in hardware engineering and build a solid foundation in it should definitely take this course.
This was one of the most interesting courses I took during my four years at this university. The course is well-structured, and even if you take it as a freshman, by the end of the semester, you'll have a thorough understanding of the material. Instructor Kabylkas guides you step by step towards the course objectives. Moreover, he is always accessible and ready to provide any support you might need, which makes the learning experience even better.
We value your feedback! Please share your feedback with us if you took the course. Let others know about your experience. Email your feedback to kabylkas@texer.ai
We understand that financial constraints can sometimes be a barrier to accessing quality education. However, before applying for financial aid, we kindly ask that you consider the following:
This course is a not-for-profit initiative. The fees collected are used solely to cover operational expenses, including salaries, equipment, servers, and other necessary resources. If you have the means to pay for the course, we encourage you to do so to help sustain this initiative for others who need financial assistance.
If you genuinely cannot afford the course fees but are passionate about participating, please complete our Financial Aid Application Form. We are committed to making education accessible and will review your application with care and discretion.
Absolutely, and here’s why! First, we have real operational costs—like paying teaching assistants, using virtual machines on Azure, and keeping everything running smoothly so you get the best learning experience. Second, there’s a bit of psychology behind the pricing. Our instructor has found that when students make a financial commitment, they’re more motivated to stick with the course and complete it. In the past, when we offered material for free, completion rates were low, and students didn’t seem to see the value. Treat this as an investment that will pay-back in the form of promotion or a new job! By investing in the course, you’re giving yourself a nudge to stay committed, learn deeply, and finish strong. It’s a win-win!
This course is for anyone looking to dive into the world of hardware design from scratch! Whether you’re a curious student, an aspiring engineer, a software developer who wants to understand the hardware side of things, or simply a tech enthusiast wanting to explore processor design, you're in the right place. We recommend a bit of programming knowledge—some familiarity with C++ and Linux will go a long way, but if you need a refresher, we’ve got extra resources to help you get started!
The course is structured like a university class, complete with lectures, hands-on labs, quizzes, and a final project. Each week, you’ll tackle different aspects of processor design and verification, starting with the basics and gradually moving to complex concepts. Labs will give you real-world experience, while quizzes and homework will help reinforce what you learn. And for those ready to go above and beyond, there’s a final project that lets you build a simple processor of your own. We even grade you, so you know exactly where you stand—and the grade you achieve comes with perks!
Many instructor's might argue with me, but in my opinion, attendance must be mandatory because it plays a crucial role in the learning process, beyond just consuming content. We are all human, and we always have "other" stuff to do, but coming to lectures helps bring attention to the material and adjusts the daily priorities. Much like learning kung fu, where a student must show up to train with the master—and the master has to hold the student accountable if they don’t—I believe showing up to class is essential for progress. While it would be easier for me not to track attendance, I value the opportunity for students to engage with the material, connect with a community of learners, and make their learning experience more meaningful.