Questions
- It's best to use blocking assignments in sequential blocks and non-blocking in combinational blocks.
a) True
b) False
- It is best to reset all sequential elements in a design.
a) True
b) False
- What are the most common ways of synchronizing?
a)
always @(posedge signal)
b)
always @(negedge signal)
c) FIFO or a two-stage synchronizer with or without data.
d) Synchronizers… who needs synchronizers?
- When would we use always
@(posedge clk)
rather thanalways_ff @(posedge clk)
?a) When we get tired of typing.
b) When we need to use an initial statement to preload the register.
c) When we need to reset the register either synchronously or asynchronously.
- When do we need to add debouncing logic?
a) When we cross clock domains
b) Whenever we send data from one FF to another
c) When we are dealing with electromechanical buttons or switches
Challenge
In Chapter 2, with Combinational Logic, we created a design that could perform some simple operations and...