Summary
In this chapter, we introduced sequential elements, how to store data using FFs, and how to write constraints for these elements for Vivado. We’ve looked at synchronization and how to deal with clock domains. Along with learning how to write combinational logic, we now have the fundamentals to create just about any design. We’ve developed a better way of displaying information and even made a more human-readable version of it. It’s important to look at what you have accomplished thus far. You’ve seen how to handle external inputs operating asynchronously with the system clock. You’ve interfaced to a more sophisticated output display. You’ve also debugged on the board using an ILA. This should give you the confidence to experiment a bit and the challenge will allow you to do just that.
In the next chapter, we’ll build on the lessons and skills we learned in this chapter by building something more substantial: a calculator...