Hi,
While fixing a Verilog-2001 code into SV standard, I just found one more example where toplevel labeled begin-ends are necessary:
If you want to re-use the same case statement code in several different generate blocks within the same module,
You must use toplevel labels (SEL1, SEL2) else you will get duplicated labels (CASEOR) in this example :
=======================================
generate
// mandatory label
begin:SEL1
case(SELECTOR1)
4'd1: begin:CASEOR
m_or g52 ();
end // CASEOR
4'd2: begin:CASEOR
m_or g52();
end
4'd3: begin:CASEOR
m_or g52 ();
end
4'd4: begin:CASEOR
m_or g52 ();
end
endcase
end:SEL1
endgenerate
// ------------------------------------------------
generate
// mandatory label
begin:SEL2
case(SELECTOR2)
4'd1: begin:CASEOR
m_or g52 ();
end // CASEOR
4'd2: begin:CASEOR
m_or g52();
end
4'd3: begin:CASEOR
m_or g52 ();
end
4'd4: begin:CASEOR
m_or g52 ();
end
endcase
end:SEL2
endgenerate
// ------------------------------------------------
Regards,
Gal Vardi
-- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Thu Feb 24 01:55:01 2011
This archive was generated by hypermail 2.1.8 : Thu Feb 24 2011 - 01:55:08 PST