RTL Design Methodology Guidelines
HDL Coder™ conforms to the following RTL design methodology guidelines, and checks for modeling constructs that violate these rules. HDL Coder reports potential rule violations in the HDL coding standard report. To avoid these violations, see the rule recommendations.
3.A Guidelines for Creating Function Libraries
3.A.C Signal, Port Constraints - I
Rule / Severity | Message | Problem | Recommendations |
---|---|---|---|
3.A.C.1 Warning |
| HDL Coder preserves the order of module port declarations and instance port connections as they appear in the original Simulink® DUT. | No action required. |
3.A.C.4a Message |
| HDL Coder complies with this rule. | No action required. |
3.A.D Signal, Port Constraints - II
Rule / Severity | Message | Problem | Recommendations |
---|---|---|---|
3.A.D.4–5 Warning |
| The generated HDL code contains multiple assignments in one line or lines greater than N characters. You have a name or identifier in your original design that contains more than N characters. | Shorten names in your design that are longer than N characters. You can also customize N
by using the HDL Coder folds the long lines in the design only so far as the HDL code syntax is not broken. |
|
3.A.F Generic Usage Constraints
Rule / Severity | Message | Problem | Recommendations |
---|---|---|---|
3.A.F.1 Reference |
| HDL Coder does not generate if-generate statements, but can generate for-generate statements in the generated HDL code. | No action required. |
3.B Guidelines for Using Function Libraries
3.B.B Parameters, Constant Constraints
Rule / Severity | Message | Problem | Recommendations |
---|---|---|---|
3.B.B.2b-4 Message |
| HDL Coder does not generate macros in the HDL code. | No action required. |
3.B.B.5–7 Message |
| HDL Coder does not generate macros in the HDL code. | No action required. |
3.B.C Port Constraints
Rule / Severity | Message | Problem | Recommendations |
---|---|---|---|
3.B.C.1 Message |
| HDL Coder preserves the association of ports, so that it complies with this rule. | No action required. |
3.B.C.2 Message |
| HDL Coder enforces type and bit-width matching, so that it complies with this rule. | No action required. |
3.B.C.3 Message |
| HDL Coder does not use entity instantiation in the design. The generated HDL code is generic and reusable. | No action required. |
3.B.D Generic Constraints
Rule / Severity | Message | Problem | Recommendations |
---|---|---|---|
3.B.D.1 Error |
| The generated HDL code contains a noninteger data type. | If you have floating-point data types in your design, you can map them to HDL Coder native floating-point libraries so that the generated code does not use floating-point data types. Alternatively, modify your design so that it does not use floating-point data types. You can disable this rule
checking by using the
|
3.B.D.3 Error |
| HDL Coder complies with this rule. | No action required. |
3.C Guidelines for Test Facilitation Design
3.C.A Clock Constraints - I
Rule / Severity | Message | Problem | Recommendations |
---|---|---|---|
3.C.A.1–4 Error |
| In the generated HDL code, you can
control clocks from external pins. If you have a
triggered subsystem and enable
For reset signals that you model in Simulink, the generated VHDL code can have a load port, which is a primary input in the generated code. | To avoid this rule violation, disable
the
|
3.C.B Black Box Constraints
Rule / Severity | Message | Problem | Recommendations |
---|---|---|---|
3.C.B.3 Error |
| HDL Coder connects the clock bundle to the entity or blackbox and does not modify it, so the generated code complies with this rule. | No action required. |
3.C.C Clock Constraints - II
Rule / Severity | Message | Problem | Recommendations |
---|---|---|---|
3.C.C.1 Error |
| HDL Coder does not use clock as data. | No action required. |
3.C.F Clock Constraints - III
Rule / Severity | Message | Problem | Recommendations |
---|---|---|---|
3.C.F.2 Error |
| HDL Coder connects the clock bundle to the entity or blackbox and does not modify it, so the generated code complies with this rule. | No action required. |