Questions
for the test of Programmable Systems Engineering:
 
 - Name three categories of
     digital programmable circuits (in terms of the architecture) and briefly
     characterize each of them.
- What category of digital
     programmable circuits deals with: coarse grade, medium grade and fine
     grade? Briefly characterize the above mentioned types of circuits.
- What kind of configuration
     memory is dominant in CPLDs and what is in FPGAs?
- Enumerate the configuration
     memory types with their advantages and disadvantages.
- In the Spartan3E FPGA, some
     logic functions can be implemented in one LUT cell. Specify how many input
     variables can have any logical function implemented in one LUT, how many
     input variables can have any logical function implemented in one slice,
     and specify the maximum number of inputs that some logic functions
     implemented on a single slice can have?
- Specify configurable parameters
     of the Spartan3E I/O terminals.
- Specify the Spartan3E
     configuration modes.
- Describe the properties and
     applications of the ‘week-keeper’ module in the Spartan3E.
- Explain the concept of ‘local
     routing’.
- Explain the concept of ‘general
     purpose routing’.
- Explain the concept of ‘global
     routing’.
- Explain the concept of
     ‘dedicated routing’.
- Explain the concept of ‘clock
     skew’ and provide ways to reduce or compensate it.
- Explain the concept of ‘Delay
     Locked Loop’, draw a diagram of such a loop and describe the applications.
- What signals can be generated
     by the DCM module in the Spartan3E. What are the requirements for clock
     signals?
- Name and characterize the
     Spartan3E single-port Block-RAM memory write modes.
- Enumerate the possible
     applications of a single-port Block-RAM memory in Spartan3E.
- Specify the properties and
     applications of a two-port Block-RAM memory in Spartan3E.
- Specify the functions that the
     LUT block in the Spartan3E CLB cell can implement.
- Specify differences of the
     architecture between PLA and PAL circuits.
- Enumerate and briefly describe
     the levels of abstraction used in the hardware description.
- Enumerate the methods of digital
     circuit description.
- What is a synthesizable subset
     of VHDL? Provide an example of a non-synthesizable statement.
- What is the resolution
     function?
- Provide ways to avoid forbidden
     states in state machines.
- What is the metastability of
     flip-flops?
- Name and briefly describe three
     methods of synthesis using functional blocks in FPGAs.
- Specify the properties of the
     variables in the processes.
- Specify the properties of the
     variables in the functions.
- Discuss the essential
     differences between variables and signals.
- Discuss the ways of
     parameterization of the design modules.
- What is the ‘unconstrained
     vector’? Describe the applications.
- What are delta cycles? Give an
     example.
- What should be the number of
     iterations of the synthesizable loop?
- What is the ‘generate’
     statement for?
 
 
- Write a synchronous process in
     VHDL that implements a synthesizable n-bit multiplier (on unsigned binary
     numbers). Do not use the * operator. The process should start the
     multiplication when the mul_start signal (std_logic type) is triggered.
     During the multiplication the mul_busy signal (std_logic type) should be
     asserted. The multiplier inputs should be given to the signals mul_in_1
     and mul_in_2 (these are std_logic_vector signals), and the result should
     be given to the mul_result register (2n bit - also std_logic_vector).
     Provide definitions of the signals used.
 
 multiplier: process (clk, rst)
 .....
 end process;
 
 
- Write a synchronous process in
     VHDL that implements the synthesizable n-bit Johnson's counter. Please
     operate on signals of type std_logic and std_logic_vector. Provide
     definitions of the signals used. Secure the counter against locking in
     prohibited state (or states).
 
 johnson: process (clk, rst)
 .....
 end process;
 
 
- Write a synchronous process in
     VHDL that implements a synthesizable state machine that controls the
     operation of the wiper motor. The machine has input signals: wipe_on
     (means wiper on), home_pos (wiper rest position), end_pos (wiper end
     position). The state machine generates the output signals: motor_on
     (switches on the wiper motor), motor_rev (switches the direction of
     rotation to reverse). Remember to synchronize input signals from sensors
     (using D flip-flops). Provide definitions of the signals used.
 
 wiper: process (clk, rst)
 .....
 end process;