Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| intro_example:cadence_import [2023/12/12 07:11] – [Example: FIFO boolean buffer] ifx_async | intro_example:cadence_import [2024/03/13 13:50] (current) – [Example: FIFO boolean buffer] ifx_async | ||
|---|---|---|---|
| Line 17: | Line 17: | ||
| } | } | ||
| </ | </ | ||
| - | Let´s save it in a file named fifobool.act. | + | |
| - | The first step consists in the synthesis of the process. This is done with the command **chp2prs**. | + | The first step consists in the synthesis of the process. This is done with the command **chp2prs**. |
| Thus: | Thus: | ||
| Line 26: | Line 26: | ||
| </ | </ | ||
| - | Other options could be added to select bundled-data (-b) or to specify a logic optimizator (-o abc). Anyway, the output is: | + | Other options could be added to select bundled-data (-b) or to specify a logic optimizator (-o abc). The output is: |
| < | < | ||
| >cat fifobool_chp2prs.act | >cat fifobool_chp2prs.act | ||
| Line 64: | Line 64: | ||
| </ | </ | ||
| The names of the synthesized version are prefixed with sdt_ which stands for syntax-directed translation. | The names of the synthesized version are prefixed with sdt_ which stands for syntax-directed translation. | ||
| - | Then, in order to achieve the cell-mapping | + | Then, in order to achieve the cell-mapping the interact tool is launched in this way: |
| < | < | ||
| > | > | ||
| Line 100: | Line 100: | ||
| interact> | interact> | ||
| </ | </ | ||
| - | Finally, | + | Finally, a Verilog netlist |
| < | < | ||
| interact> | interact> | ||
| Line 106: | Line 106: | ||
| [[asic: | [[asic: | ||
| - | In order to make the netlist valid, reg and wire definitions must be erased, using regex: | + | In order to make the netlist valid, reg and wire definitions must be erased. It can be done using regex: |
| *Replace '^ +reg .+' with ' ' | *Replace '^ +reg .+' with ' ' | ||
| *Replace '^ +wire .+' with ' ' | *Replace '^ +wire .+' with ' ' | ||
| Line 115: | Line 115: | ||
| *Replace ' | *Replace ' | ||
| *Replace ' | *Replace ' | ||
| + | *Replace ' | ||
| *Replace '([ \t]*\n){3, | *Replace '([ \t]*\n){3, | ||
| - | *Erase all empty modules. | + | *Erase all empty modules |
| Once this is done, the netlist is ready to be imported in Cadence Virtuoso (File -> Import -> Verilog) and should look like this: | Once this is done, the netlist is ready to be imported in Cadence Virtuoso (File -> Import -> Verilog) and should look like this: | ||
| <code verilog fifobool_verilog_netlist.v> | <code verilog fifobool_verilog_netlist.v> | ||