Hint: Use instance_label: component_name port map(...) [OK]
Common Mistakes:
Omitting 'port map' keyword
Using component declaration syntax instead of instantiation
Placing ports without '=>' named association
3. Given the following VHDL testbench snippet:
signal clk_tb : std_logic := '0';
signal rst_tb : std_logic := '1';
U1: my_component port map(clk => clk_tb, rst => rst_tb);
What is the role of clk_tb and rst_tb in this instantiation?
medium
A. They are variables declared inside the component
B. They are component names
C. They are constants used for timing
D. They are internal signals connected to the component's ports
Solution
Step 1: Identify signals in testbench
Signals clk_tb and rst_tb are declared in the testbench and initialized.
Step 2: Understand port mapping
In the port map, these signals connect to the component's ports clk and rst, providing inputs or outputs.
Final Answer:
They are internal signals connected to the component's ports -> Option D
Quick Check:
Testbench signals connect to component ports [OK]
Hint: Signals in port map connect testbench to component ports [OK]
Common Mistakes:
Confusing signals with component names
Thinking signals are constants or variables inside component
Ignoring signal initialization
4. Identify the error in this component instantiation inside a testbench:
U1 my_component port map(clk => clk_tb, rst => rst_tb);
medium
A. Missing colon after instance label
B. Incorrect port names used
C. Signals not declared
D. Missing semicolon at end
Solution
Step 1: Check instance label syntax
The instance label must be followed by a colon ':' before the component name.
Step 2: Analyze given code
The code has 'U1 my_component' without colon, which is a syntax error.
Final Answer:
Missing colon after instance label -> Option A
Quick Check:
Instance label must end with ':' [OK]
Hint: Instance label must have colon ':' after it [OK]
Common Mistakes:
Omitting colon after instance label
Confusing port map syntax
Forgetting semicolon at end
5. You want to instantiate two copies of a component my_component in your testbench with different signals. Which is the correct way to do this?
hard
A. U1: my_component port map(clk => clk1, rst => rst1); U2: my_component port map(clk => clk2, rst => rst2);
B. my_component U1(clk1, rst1); my_component U2(clk2, rst2);
C. component my_component port map(clk => clk1, rst => rst1); component my_component port map(clk => clk2, rst => rst2);
D. U1: my_component(clk1, rst1); U2: my_component(clk2, rst2);
Solution
Step 1: Understand multiple instantiations
Each instance must have a unique label and use port map with named associations.
Step 2: Check options for correct syntax
U1: my_component port map(clk => clk1, rst => rst1); U2: my_component port map(clk => clk2, rst => rst2); correctly uses unique labels U1 and U2, component name, and port map with named ports.
Final Answer:
U1: my_component port map(clk => clk1, rst => rst1); U2: my_component port map(clk => clk2, rst => rst2); -> Option A
Quick Check:
Multiple instances need unique labels and port maps [OK]
Hint: Use unique labels and port map for each instance [OK]
Common Mistakes:
Using same instance label twice
Omitting port map keyword
Using component declaration instead of instantiation
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.