This is an older question; however, I was perusing the same tutorial and had the same question. I thought I would give a more detailed explanation of the anatomy of the instantiation.
[moduleName] [instanceName] ( [connections] );
The name of the module to instantiate is followed by the name of the instance. This is then followed by a parenthesized list of connections, comma-separated, with the following syntax:
.[pin] ( [connectionName] ),
Where [pin]
is the name of the output/input in the original module definition and [connectionName]
is how the testbench will refer to that connection.
The pin name and the connection name do not have to match, though many examples I've seen use the pin name as the connection name.
Source on slide 12 of (Updated link originally provided in @osgx's answer):
Verilog_Modules.pdf