320 likes | 545 Views
The Control Logic. Andreas Klappenecker CPSC321 Computer Architecture. Verilog HDL. Verilog Programming. Suppose that we have a module foo Our goal is to instantiate and wire a module foon that contains n copies of the module foo .
E N D
The Control Logic Andreas Klappenecker CPSC321 Computer Architecture
Verilog Programming • Suppose that we have a module foo • Our goal is to instantiate and wire a module foon that contains n copies of the module foo. • Many textbooks on Verilog suggest to write down the n instance explicitly • if n = 1024 then this is not a viable option • reusability of the code would be limited
foo foo foo foo foo foo foo foo Example 1 foon =
Example 1 module foo(out, a,b); output out; input a, b; xor (out, a, b); endmodule module foon(out, a, b); parameter n = 8; output [n-1:0] out; input [n-1:0] a, b; foo foon[n-1:0](out,a,b); endmodule
foo foo foo foo foo foo foo foo Example 2 foon =
Example 2 module foo(out, a,b); output out; input a, b; xor (out, a, b); endmodule module foon(out, a, enable); parameter n = 8; output [n-1:0] out; input [n-1:0] a; input enable; foo foon[n-1:0] (out, a, {out[n-2:0],enable}); endmodule
Remarks • The module vector operator is not available in Icarus Verilog nor in Veriwell • The features shown work in vcs foo foon[n-1:0](out,a,{out[n-2:0],enable}); • outandarange over [n-1:0] • {out[n-2:0], enable} gives vector [n-1:0] • The suggested for-loop construction does not work
MIPS Multicycle Datapath Incomplete (branch and jumps…)
Control • What are the control signals? • Finite state machine control • Instruction fetch • instruction decode • memory reference • R-type • branch • jump
High-Level Picture • What happens precisely during each step of fetch/decode/execute cycles • Construct the finite state control machine • High-level view
Memory-Reference FSM • Address calculation • Load sequence • read from memory • store to register • Access memory • Store sequence write
R-type Instruction • Execution of instruction • Completion of instruction
Implementation of FSM • A FSM can be implemented by a register holding the state and a block of combinatorial logic • Task of the combinatorial logic: • Assert appropriate signals • Generate the new state to be stored in the register