Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
dsd1-10 / dsd-07=Verilog / esug.pdf
Скачиваний:
126
Добавлен:
05.06.2015
Размер:
1.38 Mб
Скачать
list_of_clocks] list_of_clocks]
pinlist]
pinlist]

Ambit BuildGates Synthesis User Guide

Setting Constraints

(including setup time) before the arrival of the clock. In other words, the required time for data signal at the output port of your design is calculated by subtracting the propagation delay through the logic from the clock arrival time at the register of the downstream block.

For example, the following command sets external delay of 4.1 on the output port pout which is driving the input to a register that is controlled by the leading edge of the ideal clock clk.

set_external_delay -lead -clock clk 4.1 pout

Note that if set_data_required_time command and set_external_delay command are used on the same output port, only set_data_required_time is accepted. If set_data_required_time command is not used, but multiple set_external_delay commands are used, then the worst case required time is established for timing analysis.

Multicycle Paths

By default, all paths in a design are considered single cycle paths. However, certain paths in the design are multicycle paths, i.e. the signal propagation from the start point to the end point spans over multiple cycles. The timing information for multicycle paths can be specified using set_cycle_addition command. The sample syntax is as follows:

set_cycle_addition [{-from|-from_rise|-from_fall} [{-through|-through_rise|-through_fall} [{-to|-to_rise|-to_fall} pinlist][-clock_from [-edge_from {leading | trailing}] [-clock_to

[-edge_to {leading | trailing}] [-rise | -fall] [-early | -late]

[-target] float

where:

pinlist are the pins involved in the multicycle paths.

list_of_clocks are the ideal clocks involved in the multicycle paths.

target is the clock used to calculate cycle adjustment.

float is the N-1 number of extra cycles added to the path (can be negative to reduce the number of cycles in the path).

The from option indicates the pin name at the start of the multicycle path. All paths originating from the from pin get extra cycles as specified by the float. This can be viewed as decreasing the arrival time delay at the from by the specified by float.

The to option indicates the pin name at the end of the multicycle path. All paths ending at the specified pin(s) get extra cycles as specified by float.

September 2000

145

Product Version 4.0

Ambit BuildGates Synthesis User Guide

Setting Constraints

If from option is used without the to option, all paths originating from the from pin will be considered as multicycle paths with the float. For example, the command:

set_cycle_addition -from I1/Q 2

indicates that all paths from port Q of instance I1 should be considered as 3 cycle paths (2 additional cycles) as shown in Figure 6-8. Each path may end at different cell instances in the design. There is only one float value stored at I1/Q.

Figure 6-8 Multiple Paths Starting from Pin I1/Q

I1

2

path1

Q 2

path2

2

path3

If the to option is used without the from option, all paths ending in pinlist are considered as multicycle paths with the float value. The float is stored unconditionally at the pins in pinlist for all paths terminating at the list. For example:

set_cycle_addition -to I2/A 1

The above command indicates that all paths ending in port A of instance I2 should be treated as 2 cycle paths (1 additional cycle) as shown in Figure 6-9. Each path may have originated from different pins and different module instances. There is only one float value stored at I2/

A.

Figure 6-9 Multiple Paths Ending at Pin I2/A

path1

1

I2

 

path2

1

A

 

path3

1

 

 

 

If both from and to options are used, all paths between the pins are considered as multicycle paths with the float value. The float at the to pin is stored conditionally for each path originating at the specified from pin. The float for the paths terminating at the to pin that were specified without the from pin (see to option above) remain stored at the to pin unconditionally. For example:

September 2000

146

Product Version 4.0

Ambit BuildGates Synthesis User Guide

Setting Constraints

set_cycle_addition -from I1/Q -to I2/A 2

The above command indicates that both path1 and path2 between port Q of instance I1 and port A of instance I2 are 2 cycle paths (see Figure 6-10), thus decreasing the signal arrival time at port A by 2 cycles.

Figure 6-10 Multiple Paths between Pins I1/Q and I2/A

I1

path2

I2

 

Q

path1

A

 

 

Note that if one set_cycle_addition command is used with only to option, and another set_cycle_addition command is used with both to and from options at the same to pin (irrespective of the order in which they are executed), the path between the from pin and the to pin has two different float values. For this particular path, the float value specified in the command with from and to options will override the float value at stored at the to pin specified in the command with only to option. When a path is defined either with only to option, or with both from and to options, the float is stored at the to pin; the from pin is not affected.

During the timing analysis phase, the float stored at from pins and to pins are added to the signal arrival times.

In the example shown in Figure 6-11, all paths from port A of instance I1 are two cycle paths (p3, p4, p5), all paths ending in port B of instance I2 are also 2 cycle paths (p1, p2, p3), and all paths between the ports A and B are single cycle paths (p3).

September 2000

147

Product Version 4.0

Ambit BuildGates Synthesis User Guide

Setting Constraints

Figure 6-11 Describing Multicycle Paths

I3

 

p1

I2

 

C

 

 

p2

 

 

 

B

 

 

p3

I1

 

 

 

p4

 

 

A

I4

 

 

 

 

p5

D

These multicycle paths are described with the following set_cycle_addition commands:

set_cycle_addition -from

I1/A

1

// affects p3, p4, p5

set_cycle_addition -to I2/B 1

 

// affects p1, p2, p3

set_cycle_addition -from

I1/A

-to I2/B -1 // overrides p3 at I2/B

The first command indicates that all paths starting at port I1/A are 2 cycle paths (p3, p4, p5), decreasing the arrival time at port I1/A for all paths by 1 cycle. The float for these three paths is stored unconditionally at the port I1/A. Table 6-1 describes the float stored at each port after the first command is executed. There is no float stored at the port I1/A for paths p1 and p2. The float at the port I2/B is not affected.

Table 6-1 Float Value Stored at From Pin (After First Command)

 

Path

Pin

 

 

 

I1/A

I2/B

 

 

 

p1

x

x

p2

x

x

p3

1

x

p4

1

x

p5

1

x

x indicates no change (initialized to 0)

September 2000

148

Product Version 4.0

Ambit BuildGates Synthesis User Guide

Setting Constraints

The second set_cycle_addition command in the example above indicates that all paths ending in port I2/B are 2 cycle paths (p1, p2, p3), decreasing the arrival time at port I2B for all paths by 1 cycle. The float value for these three paths is stored unconditionally at the port I2/B, causing I1/A-->I2/B path (p3) to have decreased the arrival times twice.

Table 6-2 describes the float value stored at each port after the second command is executed.

Table 6-2 Float Value Stored at To Pin (After Second Command)

 

Path

Pin

 

 

 

I1/A

I2/B

 

 

 

p1

x

1

p2

x

1

p3

1

1

p4

1

x

p5

1

x

x indicates no change due to this command

The third set_cycle_addition command in the example above overrides the unconditional float value specified at the to pin for all the specific paths ending at the to pin. The paths not identified by the third command are not affected. The float value at the port I2/B will now be replaced with -1 as specified in the third command. The value -1 was set as the cycle time in order to specify a single cycle path from I1/A-->I2/B (p3), i.e. the sum of the two cycle values (at I1/A and I2/B) should be zero. Table 6-3 describes the float value stored at each port and the net effect on the path after the third command is executed.

September 2000

149

Product Version 4.0

Соседние файлы в папке dsd-07=Verilog