OpenCores
URL https://opencores.org/ocsvn/socgen/socgen/trunk

Subversion Repositories socgen

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /socgen/trunk/common/opencores.org/cde/ip/jtag
    from Rev 133 to Rev 134
    Reverse comparison

Rev 133 → Rev 134

/componentCfg.xml
34,6 → 34,8
 
<socgen:configuration>
<socgen:name>default</socgen:name>
<socgen:version>tap</socgen:version>
<socgen:version>tap_lint</socgen:version>
<socgen:parameters>
<socgen:parameter><socgen:name>INST_LENGTH</socgen:name><socgen:value>4</socgen:value></socgen:parameter>
<socgen:parameter><socgen:name>INST_RETURN</socgen:name><socgen:value>4'b1101</socgen:value></socgen:parameter>
69,11 → 71,33
 
 
 
<socgen:configuration>
<socgen:name>reg</socgen:name>
<socgen:version>classic_rpc_reg</socgen:version>
<socgen:version>classic_rpc_in_reg</socgen:version>
<socgen:parameters>
<socgen:parameter><socgen:name>BITS</socgen:name><socgen:value>16</socgen:value></socgen:parameter>
<socgen:parameter><socgen:name>RESET_VALUE</socgen:name><socgen:value>16'h0000</socgen:value></socgen:parameter>
</socgen:parameters>
 
</socgen:configuration>
 
 
 
</socgen:configurations>
 
 
 
 
 
 
 
 
 
 
 
 
 
<socgen:sim>
 
<socgen:comp_path>jtag/sim</socgen:comp_path>
116,14 → 140,8
<socgen:parameter><socgen:name>PERIOD</socgen:name><socgen:value>40</socgen:value></socgen:parameter>
<socgen:parameter><socgen:name>TIMEOUT</socgen:name><socgen:value>100000</socgen:value></socgen:parameter>
</socgen:parameters>
<socgen:code_coverage>
<socgen:cover>
<socgen:name>cde_jtag_tap</socgen:name><socgen:componentInstance>TB.test.dut</socgen:componentInstance>
</socgen:cover>
</socgen:code_coverage>
<socgen:tools>
<socgen:tool>icarus</socgen:tool>
<socgen:tool>coverage</socgen:tool>
</socgen:tools>
</socgen:testbench>
 
136,22 → 154,13
<socgen:parameter><socgen:name>PERIOD</socgen:name><socgen:value>40</socgen:value></socgen:parameter>
<socgen:parameter><socgen:name>TIMEOUT</socgen:name><socgen:value>100000</socgen:value></socgen:parameter>
</socgen:parameters>
<socgen:code_coverage>
<socgen:cover>
<socgen:name>cde_jtag_tap</socgen:name><socgen:componentInstance>TB.test.dut</socgen:componentInstance>
</socgen:cover>
</socgen:code_coverage>
<socgen:tools>
<socgen:tool>icarus</socgen:tool>
<socgen:tool>coverage</socgen:tool>
</socgen:tools>
</socgen:testbench>
 
 
 
 
 
 
<socgen:testbench>
<socgen:variant>jtag_tap_lint</socgen:variant>
<socgen:version>tap_lint</socgen:version>
/rtl/xml/cde_jtag_rpc_reg.xml
22,66 → 22,60
 
 
 
<spirit:componentGenerator>
<spirit:name>gen_verilog</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:vendorExtensions><socgen:envIdentifier>common</socgen:envIdentifier></spirit:vendorExtensions>
<spirit:generatorExe>./tools/verilog/gen_verilog</spirit:generatorExe>
<spirit:parameters>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>jtag_rpc_reg</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
</spirit:componentGenerators>
 
 
 
<spirit:fileSets>
</spirit:componentGenerators>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../verilog/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
</spirit:fileSet>
 
 
<spirit:fileSet>
<spirit:name>fs-syn</spirit:name>
<spirit:model>
<spirit:views>
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../verilog/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
 
 
</spirit:fileSet>
<spirit:view>
<spirit:name>verilog</spirit:name>
<spirit:vendorExtensions>
<spirit:componentRef spirit:vendor="opencores.org"
spirit:library="Testbench"
spirit:name="toolflow"
spirit:version="verilog"/>
</spirit:vendorExtensions>
</spirit:view>
 
 
<spirit:fileSet>
 
<spirit:name>fs-lint</spirit:name>
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName><spirit:name>../verilog/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
<spirit:view>
<spirit:name>common</spirit:name><spirit:envIdentifier>common</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-common</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
</spirit:fileSet>
 
 
 
 
</spirit:fileSets>
 
 
 
 
 
<spirit:model>
<spirit:views>
 
 
 
 
 
<spirit:view>
<spirit:name>sim</spirit:name><spirit:envIdentifier>:*Simulation:*</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
181,7 → 175,7
 
 
<spirit:port><spirit:name>update_value</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>reg</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction>
<spirit:vector><spirit:left>BITS-1</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</spirit:port>
197,9 → 191,96
 
 
 
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-common</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/jtag_rpc_reg</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>fragment</spirit:userFileType>
</spirit:file>
 
</spirit:fileSet>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/copyright</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>include</spirit:userFileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/jtag_rpc_reg</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
 
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../views/syn/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
</spirit:fileSet>
 
 
<spirit:fileSet>
<spirit:name>fs-syn</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/copyright</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>include</spirit:userFileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/jtag_rpc_reg</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../views/syn/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
 
 
</spirit:fileSet>
 
 
<spirit:fileSet>
 
<spirit:name>fs-lint</spirit:name>
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName><spirit:name>../views/syn/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
</spirit:fileSet>
 
 
 
 
</spirit:fileSets>
 
 
 
 
 
 
 
 
 
</spirit:component>
/rtl/xml/cde_jtag_classic_rpc_reg.xml
77,60 → 77,62
 
 
 
<spirit:componentGenerators>
 
 
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../verilog/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
<spirit:componentGenerator>
<spirit:name>gen_verilog</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:vendorExtensions><socgen:envIdentifier>common</socgen:envIdentifier></spirit:vendorExtensions>
<spirit:generatorExe>./tools/verilog/gen_verilog</spirit:generatorExe>
<spirit:parameters>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>jtag_classic_rpc_reg</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
</spirit:fileSet>
 
 
<spirit:fileSet>
<spirit:name>fs-syn</spirit:name>
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../verilog/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
</spirit:componentGenerators>
 
 
 
</spirit:fileSet>
 
 
<spirit:fileSet>
 
<spirit:name>fs-lint</spirit:name>
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName><spirit:name>../verilog/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
<spirit:model>
<spirit:views>
 
</spirit:fileSet>
<spirit:view>
<spirit:name>verilog</spirit:name>
<spirit:vendorExtensions>
<spirit:componentRef spirit:vendor="opencores.org"
spirit:library="Testbench"
spirit:name="toolflow"
spirit:version="verilog"/>
</spirit:vendorExtensions>
</spirit:view>
 
 
</spirit:fileSets>
 
<spirit:view>
<spirit:name>common</spirit:name><spirit:envIdentifier>common</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-common</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
 
 
 
<spirit:model>
<spirit:views>
 
 
 
<spirit:view>
<spirit:name>sim</spirit:name><spirit:envIdentifier>:*Simulation:*</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
170,6 → 172,98
 
 
 
 
 
 
<spirit:fileSets>
 
 
<spirit:fileSet>
<spirit:name>fs-common</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/classic_rpc_reg</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>fragment</spirit:userFileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/copyright</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>include</spirit:userFileType>
</spirit:file>
 
 
 
</spirit:fileSet>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/jtag_classic_rpc_reg</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../views/sim/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
</spirit:fileSet>
 
 
<spirit:fileSet>
<spirit:name>fs-syn</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/jtag_classic_rpc_reg</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../views/syn/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
 
 
</spirit:fileSet>
 
 
<spirit:fileSet>
 
<spirit:name>fs-lint</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/jtag_classic_rpc_reg</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
 
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName><spirit:name>../views/syn/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
</spirit:fileSet>
 
 
</spirit:fileSets>
 
 
 
 
<spirit:modelParameters>
<spirit:modelParameter><spirit:name>BITS</spirit:name><spirit:value>16</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>RESET_VALUE</spirit:name><spirit:value>'h0</spirit:value></spirit:modelParameter>
188,7 → 282,7
 
 
<spirit:port><spirit:name>update_value</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>reg</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction>
<spirit:vector><spirit:left>BITS-1</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</spirit:port>
209,4 → 303,9
 
 
 
 
 
 
 
 
</spirit:component>
/rtl/xml/cde_jtag_tap.xml
255,44 → 255,22
 
 
<spirit:componentGenerator>
<spirit:name>gen_verilogLib_sim</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:name>gen_verilog</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:vendorExtensions><socgen:envIdentifier>:*Simulation:*</socgen:envIdentifier></spirit:vendorExtensions>
<spirit:generatorExe>./tools/verilog/gen_verilogLib</spirit:generatorExe>
<spirit:parameters>
<spirit:vendorExtensions><socgen:envIdentifier>common</socgen:envIdentifier></spirit:vendorExtensions>
<spirit:generatorExe>./tools/verilog/gen_verilog</spirit:generatorExe>
<spirit:parameters>
<spirit:parameter>
<spirit:name>dest_dir</spirit:name>
<spirit:value>../verilog</spirit:value>
<spirit:name>destination</spirit:name>
<spirit:value>jtag_tap</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>view</spirit:name>
<spirit:value>sim</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:parameters>
</spirit:componentGenerator>
 
 
<spirit:componentGenerator>
<spirit:name>gen_verilogLib_syn</spirit:name>
<spirit:phase>105.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:vendorExtensions><socgen:envIdentifier>:*Synthesis:*</socgen:envIdentifier></spirit:vendorExtensions>
<spirit:generatorExe>./tools/verilog/gen_verilogLib</spirit:generatorExe>
<spirit:parameters>
<spirit:parameter>
<spirit:name>dest_dir</spirit:name>
<spirit:value>../verilog</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>view</spirit:name>
<spirit:value>syn</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
</spirit:componentGenerators>
 
 
313,11 → 291,33
<spirit:hierarchyRef spirit:vendor="opencores.org"
spirit:library="cde"
spirit:name="jtag"
spirit:version="def.design"/>
spirit:version="tap.design"/>
</spirit:view>
 
<spirit:view>
<spirit:name>verilog</spirit:name>
<spirit:vendorExtensions>
<spirit:componentRef spirit:vendor="opencores.org"
spirit:library="Testbench"
spirit:name="toolflow"
spirit:version="verilog"/>
</spirit:vendorExtensions>
</spirit:view>
 
 
 
<spirit:view>
<spirit:name>common</spirit:name><spirit:envIdentifier>common</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-common</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
 
 
<spirit:view>
<spirit:name>sim</spirit:name><spirit:envIdentifier>:*Simulation:*</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
359,87 → 359,51
</spirit:views>
 
 
<spirit:modelParameters>
<spirit:modelParameter><spirit:name>INST_LENGTH</spirit:name><spirit:value>4</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>INST_RETURN</spirit:name><spirit:value>4'b1101</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>INST_RESET</spirit:name><spirit:value>4'b1111</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>CHIP_ID_VAL</spirit:name><spirit:value>32'h12345678</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>NUM_USER</spirit:name><spirit:value>2</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>EXTEST</spirit:name><spirit:value>4'b0000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>USER</spirit:name><spirit:value>8'b1010_1001</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>SAMPLE</spirit:name><spirit:value>4'b0001</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>HIGHZ_MODE</spirit:name><spirit:value>4'b0010</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>CHIP_ID_ACCESS</spirit:name><spirit:value>4'b0011</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>CLAMP</spirit:name><spirit:value>4'b1000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>RPC_DATA</spirit:name><spirit:value>4'b1010</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>RPC_ADD</spirit:name><spirit:value>4'b1001</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>BYPASS</spirit:name><spirit:value>4'b1111</spirit:value></spirit:modelParameter>
 
 
</spirit:modelParameters>
 
 
<spirit:ports>
<spirit:fileSets>
 
 
 
<spirit:fileSet>
<spirit:name>fs-common</spirit:name>
 
<spirit:port><spirit:name>tap_highz_mode</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>reg</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tap</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>fragment</spirit:userFileType>
</spirit:file>
 
<spirit:port><spirit:name>bsr_output_mode</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>reg</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>bsr_tdo_i</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>in</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>jtag_clk</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>update_dr_o</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>reg</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>bsr_select_o</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
</spirit:fileSet>
 
</spirit:ports>
 
</spirit:model>
 
 
 
 
 
<spirit:fileSets>
 
 
 
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/copyright</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>include</spirit:userFileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/jtag_tap</spirit:name>
<spirit:name>../verilog/common/jtag_tap</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../verilog/sim/</spirit:name>
<spirit:name>../views/sim/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
455,12 → 419,17
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>include</spirit:userFileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/copyright</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>include</spirit:userFileType>
</spirit:file>
 
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/jtag_tap</spirit:name>
<spirit:name>../verilog/common/jtag_tap</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
467,7 → 436,7
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../verilog/syn/</spirit:name>
<spirit:name>../views/syn/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
480,7 → 449,7
<spirit:name>fs-lint</spirit:name>
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../verilog/syn/</spirit:name>
<spirit:name>../views/syn/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
489,15 → 458,76
 
 
 
</spirit:fileSets>
 
 
 
</spirit:fileSets>
<spirit:modelParameters>
<spirit:modelParameter><spirit:name>INST_LENGTH</spirit:name><spirit:value>4</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>INST_RETURN</spirit:name><spirit:value>4'b1101</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>INST_RESET</spirit:name><spirit:value>4'b1111</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>CHIP_ID_VAL</spirit:name><spirit:value>32'h00000000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>NUM_USER</spirit:name><spirit:value>2</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>EXTEST</spirit:name><spirit:value>4'b0000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>USER</spirit:name><spirit:value>8'b1010_1001</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>SAMPLE</spirit:name><spirit:value>4'b0001</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>HIGHZ_MODE</spirit:name><spirit:value>4'b0010</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>CHIP_ID_ACCESS</spirit:name><spirit:value>4'b0011</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>CLAMP</spirit:name><spirit:value>4'b1000</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>RPC_DATA</spirit:name><spirit:value>4'b1010</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>RPC_ADD</spirit:name><spirit:value>4'b1001</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>BYPASS</spirit:name><spirit:value>4'b1111</spirit:value></spirit:modelParameter>
 
 
</spirit:modelParameters>
 
 
<spirit:ports>
 
 
 
 
<spirit:port><spirit:name>tap_highz_mode</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>reg</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>bsr_output_mode</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>reg</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>bsr_tdo_i</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>in</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>jtag_clk</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>update_dr_o</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>reg</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>bsr_select_o</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
 
</spirit:ports>
 
</spirit:model>
 
 
 
 
 
 
 
 
 
 
</spirit:component>
/rtl/xml/cde_jtag_rpc_in_reg.xml
14,59 → 14,59
<spirit:name>jtag</spirit:name>
<spirit:version>rpc_in_reg</spirit:version> <spirit:configuration>default</spirit:configuration>
 
<spirit:componentGenerators>
 
 
 
 
<spirit:busInterfaces>
 
 
</spirit:componentGenerators>
<spirit:busInterface><spirit:name>jtag</spirit:name>
<spirit:abstractionType spirit:vendor="opencores.org" spirit:library="cde" spirit:name="jtag" spirit:version="rpc_classic_rtl"/>
<spirit:slave/>
<spirit:portMaps>
 
 
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
<spirit:portMap>
<spirit:logicalPort><spirit:name>capture_dr</spirit:name></spirit:logicalPort>
<spirit:physicalPort><spirit:name>capture_dr</spirit:name></spirit:physicalPort>
</spirit:portMap>
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../verilog/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
<spirit:portMap>
<spirit:logicalPort><spirit:name>shift_dr</spirit:name></spirit:logicalPort>
<spirit:physicalPort><spirit:name>shift_dr</spirit:name></spirit:physicalPort>
</spirit:portMap>
 
</spirit:fileSet>
 
<spirit:portMap>
<spirit:logicalPort><spirit:name>tdi</spirit:name></spirit:logicalPort>
<spirit:physicalPort><spirit:name>tdi</spirit:name></spirit:physicalPort>
</spirit:portMap>
 
<spirit:fileSet>
<spirit:name>fs-syn</spirit:name>
<spirit:portMap>
<spirit:logicalPort><spirit:name>tdo</spirit:name></spirit:logicalPort>
<spirit:physicalPort><spirit:name>tdo</spirit:name></spirit:physicalPort>
</spirit:portMap>
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../verilog/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
<spirit:portMap>
<spirit:logicalPort><spirit:name>select</spirit:name></spirit:logicalPort>
<spirit:physicalPort><spirit:name>select</spirit:name></spirit:physicalPort>
</spirit:portMap>
 
 
 
</spirit:fileSet>
 
 
</spirit:portMaps>
</spirit:busInterface>
 
<spirit:fileSet>
</spirit:busInterfaces>
 
<spirit:name>fs-lint</spirit:name>
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName><spirit:name>../verilog/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
</spirit:fileSet>
 
 
 
</spirit:fileSets>
 
 
 
73,13 → 73,66
 
 
 
<spirit:componentGenerators>
 
 
 
<spirit:componentGenerator>
<spirit:name>gen_verilog</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:vendorExtensions><socgen:envIdentifier>common</socgen:envIdentifier></spirit:vendorExtensions>
<spirit:generatorExe>./tools/verilog/gen_verilog</spirit:generatorExe>
<spirit:parameters>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>jtag_rpc_in_reg</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
 
 
 
 
</spirit:componentGenerators>
 
 
 
 
 
<spirit:model>
<spirit:views>
 
 
<spirit:view>
<spirit:name>verilog</spirit:name>
<spirit:vendorExtensions>
<spirit:componentRef spirit:vendor="opencores.org"
spirit:library="Testbench"
spirit:name="toolflow"
spirit:version="verilog"/>
</spirit:vendorExtensions>
</spirit:view>
 
 
 
<spirit:view>
<spirit:name>common</spirit:name><spirit:envIdentifier>common</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-common</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
 
 
 
 
<spirit:view>
<spirit:name>sim</spirit:name><spirit:envIdentifier>:*Simulation:*</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
119,6 → 172,99
 
 
 
 
 
<spirit:fileSets>
 
 
 
 
 
<spirit:fileSet>
<spirit:name>fs-common</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/jtag_rpc_in_reg</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>fragment</spirit:userFileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/copyright</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>include</spirit:userFileType>
</spirit:file>
 
 
 
</spirit:fileSet>
 
 
 
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/jtag_rpc_in_reg</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../views/sim/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
</spirit:fileSet>
 
 
<spirit:fileSet>
<spirit:name>fs-syn</spirit:name>
 
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/jtag_rpc_in_reg</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
 
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../views/syn/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
 
 
</spirit:fileSet>
 
 
 
<spirit:fileSet>
 
<spirit:name>fs-lint</spirit:name>
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName><spirit:name>../views/syn/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
</spirit:fileSet>
 
 
 
</spirit:fileSets>
 
 
 
 
 
<spirit:modelParameters>
<spirit:modelParameter><spirit:name>BITS</spirit:name><spirit:value>16</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>RESET_VALUE</spirit:name><spirit:value>'h0</spirit:value></spirit:modelParameter>
126,11 → 272,16
 
<spirit:ports>
 
 
 
 
 
<spirit:port><spirit:name>clk</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>in</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><spirit:name>reset</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>in</spirit:direction></spirit:wire>
137,33 → 288,11
</spirit:port>
 
 
<spirit:port><spirit:name>tdi</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>in</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>select</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>in</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>capture_dr</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>in</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>shift_dr</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>in</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><spirit:name>tdo</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><spirit:name>capture_value</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>in</spirit:direction>
175,6 → 304,7
 
 
 
 
</spirit:ports>
 
</spirit:model>
/rtl/xml/cde_jtag_classic_rpc_in_reg.xml
14,59 → 14,71
<spirit:name>jtag</spirit:name>
<spirit:version>classic_rpc_in_reg</spirit:version> <spirit:configuration>default</spirit:configuration>
 
<spirit:componentGenerators>
 
 
 
 
 
<spirit:busInterfaces>
 
</spirit:componentGenerators>
 
<spirit:busInterface><spirit:name>jtag</spirit:name>
<spirit:abstractionType spirit:vendor="opencores.org" spirit:library="cde" spirit:name="jtag" spirit:version="rpc_classic_rtl"/>
<spirit:slave/>
<spirit:portMaps>
 
<spirit:portMap>
<spirit:logicalPort><spirit:name>test_logic_reset</spirit:name></spirit:logicalPort>
<spirit:physicalPort><spirit:name>test_logic_reset</spirit:name></spirit:physicalPort>
</spirit:portMap>
 
<spirit:fileSets>
<spirit:portMap>
<spirit:logicalPort><spirit:name>capture_dr</spirit:name></spirit:logicalPort>
<spirit:physicalPort><spirit:name>capture_dr</spirit:name></spirit:physicalPort>
</spirit:portMap>
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
<spirit:portMap>
<spirit:logicalPort><spirit:name>shift_dr</spirit:name></spirit:logicalPort>
<spirit:physicalPort><spirit:name>shift_dr</spirit:name></spirit:physicalPort>
</spirit:portMap>
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../verilog/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
<spirit:portMap>
<spirit:logicalPort><spirit:name>update_dr_clk</spirit:name></spirit:logicalPort>
<spirit:physicalPort><spirit:name>update_dr_clk</spirit:name></spirit:physicalPort>
</spirit:portMap>
 
</spirit:fileSet>
 
<spirit:portMap>
<spirit:logicalPort><spirit:name>tdi</spirit:name></spirit:logicalPort>
<spirit:physicalPort><spirit:name>tdi</spirit:name></spirit:physicalPort>
</spirit:portMap>
 
<spirit:fileSet>
<spirit:name>fs-syn</spirit:name>
<spirit:portMap>
<spirit:logicalPort><spirit:name>tdo</spirit:name></spirit:logicalPort>
<spirit:physicalPort><spirit:name>tdo</spirit:name></spirit:physicalPort>
</spirit:portMap>
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../verilog/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
<spirit:portMap>
<spirit:logicalPort><spirit:name>select</spirit:name></spirit:logicalPort>
<spirit:physicalPort><spirit:name>select</spirit:name></spirit:physicalPort>
</spirit:portMap>
 
 
<spirit:portMap>
<spirit:logicalPort><spirit:name>shiftcapture_dr_clk</spirit:name></spirit:logicalPort>
<spirit:physicalPort><spirit:name>shiftcapture_dr_clk</spirit:name></spirit:physicalPort>
</spirit:portMap>
 
</spirit:fileSet>
 
 
<spirit:fileSet>
</spirit:portMaps>
</spirit:busInterface>
 
<spirit:name>fs-lint</spirit:name>
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName><spirit:name>../verilog/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
</spirit:busInterfaces>
 
</spirit:fileSet>
 
 
 
</spirit:fileSets>
 
 
 
74,10 → 86,71
 
 
 
 
 
 
 
 
 
 
<spirit:componentGenerators>
 
 
 
 
<spirit:componentGenerator>
<spirit:name>gen_verilog</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:vendorExtensions><socgen:envIdentifier>common</socgen:envIdentifier></spirit:vendorExtensions>
<spirit:generatorExe>./tools/verilog/gen_verilog</spirit:generatorExe>
<spirit:parameters>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>jtag_classic_rpc_in_reg</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
 
</spirit:componentGenerators>
 
 
 
 
 
 
 
<spirit:model>
<spirit:views>
 
<spirit:view>
<spirit:name>verilog</spirit:name>
<spirit:vendorExtensions>
<spirit:componentRef spirit:vendor="opencores.org"
spirit:library="Testbench"
spirit:name="toolflow"
spirit:version="verilog"/>
</spirit:vendorExtensions>
</spirit:view>
 
 
 
<spirit:view>
<spirit:name>common</spirit:name><spirit:envIdentifier>common</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-common</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
 
 
 
<spirit:view>
<spirit:name>sim</spirit:name><spirit:envIdentifier>:*Simulation:*</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
118,51 → 191,110
 
 
 
<spirit:modelParameters>
<spirit:modelParameter><spirit:name>BITS</spirit:name><spirit:value>16</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>RESET_VALUE</spirit:name><spirit:value>'h0</spirit:value></spirit:modelParameter>
</spirit:modelParameters>
<spirit:fileSets>
 
<spirit:ports>
 
<spirit:port><spirit:name>shiftcapture_dr_clk</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>in</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>test_logic_reset</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>in</spirit:direction></spirit:wire>
</spirit:port>
<spirit:fileSet>
<spirit:name>fs-common</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/classic_rpc_in_reg</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>fragment</spirit:userFileType>
</spirit:file>
 
<spirit:port><spirit:name>tdi</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>in</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>select</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>in</spirit:direction></spirit:wire>
</spirit:port>
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/copyright</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>include</spirit:userFileType>
</spirit:file>
 
<spirit:port><spirit:name>capture_dr</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>in</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>shift_dr</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>in</spirit:direction></spirit:wire>
</spirit:port>
 
</spirit:fileSet>
 
<spirit:port><spirit:name>tdo</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
 
 
 
 
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/jtag_classic_rpc_in_reg</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../views/sim/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
</spirit:fileSet>
 
 
<spirit:fileSet>
<spirit:name>fs-syn</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/jtag_classic_rpc_in_reg</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../views/syn/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
 
 
</spirit:fileSet>
 
 
<spirit:fileSet>
 
<spirit:name>fs-lint</spirit:name>
 
 
 
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName><spirit:name>../views/syn/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
 
</spirit:fileSet>
 
 
 
 
 
 
 
</spirit:fileSets>
 
 
 
 
 
<spirit:modelParameters>
<spirit:modelParameter><spirit:name>BITS</spirit:name><spirit:value>16</spirit:value></spirit:modelParameter>
<spirit:modelParameter><spirit:name>RESET_VALUE</spirit:name><spirit:value>'h0</spirit:value></spirit:modelParameter>
</spirit:modelParameters>
 
<spirit:ports>
 
 
<spirit:port><spirit:name>capture_value</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>wire</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>in</spirit:direction>
/rtl/xml/cde_jtag_sync.xml
122,14 → 122,63
</spirit:busInterfaces>
 
 
<spirit:componentGenerators>
 
 
 
 
<spirit:componentGenerator>
<spirit:name>gen_verilog</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:vendorExtensions><socgen:envIdentifier>common</socgen:envIdentifier></spirit:vendorExtensions>
<spirit:generatorExe>./tools/verilog/gen_verilog</spirit:generatorExe>
<spirit:parameters>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>jtag_sync</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
 
</spirit:componentGenerators>
 
 
 
 
<spirit:model>
<spirit:views>
 
 
<spirit:view>
<spirit:name>verilog</spirit:name>
<spirit:vendorExtensions>
<spirit:componentRef spirit:vendor="opencores.org"
spirit:library="Testbench"
spirit:name="toolflow"
spirit:version="verilog"/>
</spirit:vendorExtensions>
</spirit:view>
 
 
 
 
<spirit:view>
<spirit:name>common</spirit:name><spirit:envIdentifier>common</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-common</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
 
 
 
<spirit:view>
<spirit:name>sim</spirit:name><spirit:envIdentifier>:*Simulation:*</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
196,7 → 245,29
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/sync</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>fragment</spirit:userFileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/copyright</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>include</spirit:userFileType>
</spirit:file>
 
 
</spirit:fileSet>
 
 
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../verilog/</spirit:name>
/rtl/xml/cde_jtag_tap.design.xml
0,0 → 1,287
<?xml version="1.0" encoding="UTF-8"?>
<!--
 
-->
<spirit:design
xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009"
xmlns:socgen="http://opencores.org"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009
http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
 
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>jtag</spirit:name>
<spirit:version>tap.design</spirit:version>
 
 
<spirit:vendorExtensions><socgen:nodes>
 
 
<socgen:node><spirit:name>tclk</spirit:name>
<spirit:typeName>wire</spirit:typeName>
 
</socgen:node>
 
<socgen:node><spirit:name>tclk_n</spirit:name>
<spirit:typeName>wire</spirit:typeName>
 
</socgen:node>
 
 
<socgen:node><spirit:name>tap_state</spirit:name>
<spirit:typeName>reg</spirit:typeName>
<spirit:wire><spirit:vector><spirit:left>3</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</socgen:node>
 
 
<socgen:node><spirit:name>next_tap_state</spirit:name>
<spirit:typeName>reg</spirit:typeName>
<spirit:wire><spirit:vector><spirit:left>3</spirit:left><spirit:right>0</spirit:right></spirit:vector></spirit:wire>
</socgen:node>
 
 
<socgen:node><spirit:name>shift_ir</spirit:name>
<spirit:typeName>reg</spirit:typeName>
 
</socgen:node>
 
<socgen:node><spirit:name>update_ir</spirit:name>
<spirit:typeName>reg</spirit:typeName>
 
</socgen:node>
 
<socgen:node><spirit:name>capture_ir</spirit:name>
<spirit:typeName>reg</spirit:typeName>
 
</socgen:node>
 
 
 
<socgen:node><spirit:name>next_tdo</spirit:name>
<spirit:typeName>reg</spirit:typeName>
 
</socgen:node>
 
 
<socgen:node><spirit:name>bypass_tdo</spirit:name>
<spirit:typeName>reg</spirit:typeName>
 
</socgen:node>
 
 
<socgen:node><spirit:name>chip_id_tdo</spirit:name>
<spirit:typeName>wire</spirit:typeName>
 
</socgen:node>
 
<socgen:node><spirit:name>chip_id_select</spirit:name>
<spirit:typeName>wire</spirit:typeName>
 
</socgen:node>
 
<socgen:node><spirit:name>bypass_select</spirit:name>
<spirit:typeName>wire</spirit:typeName>
 
</socgen:node>
 
 
<socgen:node><spirit:name>extest</spirit:name>
<spirit:typeName>wire</spirit:typeName>
 
</socgen:node>
 
 
<socgen:node><spirit:name>sample</spirit:name>
<spirit:typeName>wire</spirit:typeName>
 
</socgen:node>
 
 
<socgen:node><spirit:name>clamp</spirit:name>
<spirit:typeName>wire</spirit:typeName>
 
</socgen:node>
 
 
<socgen:node><spirit:name>bsr_output_mode</spirit:name>
<spirit:typeName>reg</spirit:typeName>
</socgen:node>
 
 
<socgen:node><spirit:name>shiftcapture_dr</spirit:name>
<spirit:typeName>wire</spirit:typeName>
</socgen:node>
 
 
<socgen:node><spirit:name>aux_update_dr_o</spirit:name>
<spirit:typeName>wire</spirit:typeName>
</socgen:node>
 
 
<socgen:node><spirit:name>aux_jtag_clk</spirit:name>
<spirit:typeName>wire</spirit:typeName>
</socgen:node>
 
 
 
 
 
</socgen:nodes></spirit:vendorExtensions>
 
 
<spirit:adHocConnections>
 
<spirit:adHocConnection>
<spirit:name>jtag_clk</spirit:name>
<spirit:externalPortReference spirit:portRef="jtag_clk"/>
<spirit:internalPortReference spirit:componentRef="chip_id_reg" spirit:portRef="clk"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>trst_pad_in</spirit:name>
<spirit:externalPortReference spirit:portRef="trst_pad_in"/>
<spirit:internalPortReference spirit:componentRef="chip_id_reg" spirit:portRef="reset"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tdi_pad_in</spirit:name>
<spirit:externalPortReference spirit:portRef="JTAG_INT_JTAG_TDI_PAD_IN"/>
<spirit:internalPortReference spirit:componentRef="chip_id_reg" spirit:portRef="tdi"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>chip_id_select</spirit:name>
<spirit:externalPortReference spirit:portRef="chip_id_select"/>
<spirit:internalPortReference spirit:componentRef="chip_id_reg" spirit:portRef="select"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>chip_id_tdo</spirit:name>
<spirit:externalPortReference spirit:portRef="chip_id_tdo"/>
<spirit:internalPortReference spirit:componentRef="chip_id_reg" spirit:portRef="tdo"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>capture_dr_o</spirit:name>
<spirit:externalPortReference spirit:portRef="jtag_capture_dr"/>
<spirit:internalPortReference spirit:componentRef="chip_id_reg" spirit:portRef="capture_dr"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>shift_dr_o</spirit:name>
<spirit:externalPortReference spirit:portRef="jtag_shift_dr"/>
<spirit:internalPortReference spirit:componentRef="chip_id_reg" spirit:portRef="shift_dr"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection>
<spirit:name>tclk</spirit:name>
<spirit:externalPortReference spirit:portRef="tclk"/>
<spirit:internalPortReference spirit:componentRef="clk_gater_jtag_shift_clk" spirit:portRef="clk_in"/>
<spirit:internalPortReference spirit:componentRef="clk_gater_jtag_update_clk" spirit:portRef="clk_in"/>
<spirit:internalPortReference spirit:componentRef="clk_gater_jtag_clk" spirit:portRef="clk_in"/>
</spirit:adHocConnection>
 
 
 
 
 
<spirit:adHocConnection>
<spirit:name>jtag_shift_clk</spirit:name>
<spirit:externalPortReference spirit:portRef="jtag_shift_clk"/>
<spirit:internalPortReference spirit:componentRef="clk_gater_jtag_shift_clk" spirit:portRef="clk_out"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>update_dr_clk_o</spirit:name>
<spirit:externalPortReference spirit:portRef="jtag_update_dr_clk"/>
<spirit:internalPortReference spirit:componentRef="clk_gater_jtag_update_clk" spirit:portRef="clk_out"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>jtag_clk</spirit:name>
<spirit:externalPortReference spirit:portRef="jtag_clk"/>
<spirit:internalPortReference spirit:componentRef="clk_gater_jtag_clk" spirit:portRef="clk_out"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>shiftcapture_dr</spirit:name>
<spirit:externalPortReference spirit:portRef="shiftcapture_dr"/>
<spirit:internalPortReference spirit:componentRef="clk_gater_jtag_shift_clk" spirit:portRef="enable"/>
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>update_dr_o</spirit:name>
<spirit:externalPortReference spirit:portRef="update_dr_o"/>
<spirit:internalPortReference spirit:componentRef="clk_gater_jtag_update_clk" spirit:portRef="enable"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection>
<spirit:name>chip_id_value</spirit:name>
<spirit:externalPortReference spirit:portRef="chip_id_value" spirit:left="31" spirit:right="0" />
<spirit:internalPortReference spirit:componentRef="chip_id_reg" spirit:portRef="capture_value"/>
</spirit:adHocConnection>
 
 
<spirit:adHocConnection spirit:tiedValue="1'b1" >
<spirit:internalPortReference spirit:componentRef="clk_gater_jtag_clk" spirit:portRef="enable"/>
</spirit:adHocConnection>
 
 
 
<spirit:adHocConnection spirit:tiedValue="1'b0" >
<spirit:internalPortReference spirit:componentRef="clk_gater_jtag_shift_clk" spirit:portRef="atg_clk_mode"/>
<spirit:internalPortReference spirit:componentRef="clk_gater_jtag_update_clk" spirit:portRef="atg_clk_mode"/>
<spirit:internalPortReference spirit:componentRef="clk_gater_jtag_clk" spirit:portRef="atg_clk_mode"/>
</spirit:adHocConnection>
 
 
 
 
 
 
 
</spirit:adHocConnections>
 
 
 
<spirit:componentInstances>
 
<spirit:componentInstance>
<spirit:instanceName>clk_gater_jtag_shift_clk</spirit:instanceName> <spirit:componentRef spirit:vendor="opencores.org" spirit:library="cde" spirit:name="clock" spirit:version="gater" />
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>clk_gater_jtag_update_clk</spirit:instanceName> <spirit:componentRef spirit:vendor="opencores.org" spirit:library="cde" spirit:name="clock" spirit:version="gater" />
</spirit:componentInstance>
 
<spirit:componentInstance>
<spirit:instanceName>clk_gater_jtag_clk</spirit:instanceName> <spirit:componentRef spirit:vendor="opencores.org" spirit:library="cde" spirit:name="clock" spirit:version="gater" />
</spirit:componentInstance>
 
 
 
<spirit:componentInstance>
<spirit:instanceName>chip_id_reg</spirit:instanceName> <spirit:componentRef spirit:vendor="opencores.org" spirit:library="cde" spirit:name="jtag" spirit:version="rpc_in_reg" />
<spirit:configurableElementValues>
<spirit:configurableElementValue spirit:referenceId="BITS">32</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="RESET_VALUE">CHIP_ID_VAL</spirit:configurableElementValue>
</spirit:configurableElementValues>
</spirit:componentInstance>
 
 
 
 
</spirit:componentInstances>
 
 
 
 
 
</spirit:design>
/rtl/xml/cde_jtag_classic_sync.xml
137,12 → 137,62
 
 
 
<spirit:componentGenerators>
 
 
 
 
<spirit:componentGenerator>
<spirit:name>gen_verilog</spirit:name>
<spirit:phase>104.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:vendorExtensions><socgen:envIdentifier>common</socgen:envIdentifier></spirit:vendorExtensions>
<spirit:generatorExe>./tools/verilog/gen_verilog</spirit:generatorExe>
<spirit:parameters>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>jtag_classic_sync</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
 
 
 
</spirit:componentGenerators>
 
 
 
 
<spirit:model>
<spirit:views>
 
 
<spirit:view>
<spirit:name>verilog</spirit:name>
<spirit:vendorExtensions>
<spirit:componentRef spirit:vendor="opencores.org"
spirit:library="Testbench"
spirit:name="toolflow"
spirit:version="verilog"/>
</spirit:vendorExtensions>
</spirit:view>
 
 
 
<spirit:view>
<spirit:name>common</spirit:name><spirit:envIdentifier>common</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
<spirit:fileSetRef>
<spirit:localName>fs-common</spirit:localName>
</spirit:fileSetRef>
</spirit:view>
 
 
 
 
<spirit:view>
<spirit:name>sim</spirit:name><spirit:envIdentifier>:*Simulation:*</spirit:envIdentifier>
<spirit:language>Verilog</spirit:language>
<spirit:modelName></spirit:modelName>
193,6 → 243,39
</spirit:port>
 
 
<spirit:port><spirit:name>syn_reset</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>reg</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><spirit:name>syn_shift_dr</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>reg</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><spirit:name>syn_capture_dr</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>reg</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
 
 
<spirit:port><spirit:name>syn_update_dr</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>reg</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>syn_tdi_o</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>reg</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
 
<spirit:port><spirit:name>syn_select</spirit:name>
<spirit:wireTypeDefs><spirit:wireTypeDef><spirit:typeName>reg</spirit:typeName></spirit:wireTypeDef></spirit:wireTypeDefs>
<spirit:wire><spirit:direction>out</spirit:direction></spirit:wire>
</spirit:port>
 
</spirit:ports>
 
</spirit:model>
207,12 → 290,43
<spirit:fileSets>
 
<spirit:fileSet>
<spirit:name>fs-common</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/classic_sync</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>fragment</spirit:userFileType>
</spirit:file>
 
 
 
 
 
</spirit:fileSet>
 
 
 
 
<spirit:fileSet>
<spirit:name>fs-sim</spirit:name>
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/copyright</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>include</spirit:userFileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/jtag_classic_sync</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../verilog/</spirit:name>
<spirit:name>../views/sim/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType>
<spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
223,9 → 337,28
<spirit:fileSet>
<spirit:name>fs-syn</spirit:name>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/copyright</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>include</spirit:userFileType>
</spirit:file>
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/jtag_classic_sync</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
 
 
 
 
 
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../verilog/</spirit:name>
<spirit:name>../views/syn/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType>
<spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
240,7 → 373,7
<spirit:name>fs-lint</spirit:name>
<spirit:file>
<spirit:logicalName>dest_dir</spirit:logicalName>
<spirit:name>../verilog/</spirit:name>
<spirit:name>../views/syn/</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType>
<spirit:userFileType>libraryDir</spirit:userFileType>
</spirit:file>
/rtl/verilog/classic_rpc_reg
0,0 → 1,26
 
// shift buffer and shadow
reg [BITS-1:0] buffer;
 
always @(posedge shiftcapture_dr_clk or posedge test_logic_reset)
if (test_logic_reset) buffer <= RESET_VALUE;
else
if (select && capture_dr) buffer <= capture_value;
else
if (select && shift_dr) buffer <= { tdi, buffer[BITS-1:1] };
else buffer <= buffer;
 
 
always @(posedge update_dr_clk or posedge test_logic_reset)
if (test_logic_reset) update_value <= RESET_VALUE;
else
if (select) update_value <= buffer;
else update_value <= update_value;
 
 
 
assign tdo = buffer[0];
 
 
/rtl/verilog/tap
0,0 → 1,286
//********************************************************************
//*** assignments for 2nd channel
//********************************************************************
 
 
assign aux_jtag_clk = jtag_clk;
assign aux_update_dr_clk_o = update_dr_clk_o;
assign aux_shiftcapture_dr_clk_o = shiftcapture_dr_clk_o;
assign aux_test_logic_reset_o = test_logic_reset_o;
assign aux_tdi_o = tdi_o;
assign aux_capture_dr_o = capture_dr_o;
assign aux_shift_dr_o = shift_dr_o;
assign aux_update_dr_o = update_dr_o;
 
assign chip_id_value = CHIP_ID_VAL ;
 
//********************************************************************
//*** TAP Controller State Machine
//********************************************************************
 
 
// TAP state parameters
localparam TEST_LOGIC_RESET = 4'b1111,
RUN_TEST_IDLE = 4'b1100,
SELECT_DR_SCAN = 4'b0111,
CAPTURE_DR = 4'b0110,
SHIFT_DR = 4'b0010,
EXIT1_DR = 4'b0001,
PAUSE_DR = 4'b0011,
EXIT2_DR = 4'b0000,
UPDATE_DR = 4'b0101,
SELECT_IR_SCAN = 4'b0100,
CAPTURE_IR = 4'b1110,
SHIFT_IR = 4'b1010,
EXIT1_IR = 4'b1001,
PAUSE_IR = 4'b1011,
EXIT2_IR = 4'b1000,
UPDATE_IR = 4'b1101;
 
 
 
// next state decode for tap controller
always @(*)
case (tap_state) // synopsys parallel_case
TEST_LOGIC_RESET: next_tap_state = tms_pad_in ? TEST_LOGIC_RESET : RUN_TEST_IDLE;
RUN_TEST_IDLE: next_tap_state = tms_pad_in ? SELECT_DR_SCAN : RUN_TEST_IDLE;
SELECT_DR_SCAN: next_tap_state = tms_pad_in ? SELECT_IR_SCAN : CAPTURE_DR;
CAPTURE_DR: next_tap_state = tms_pad_in ? EXIT1_DR : SHIFT_DR;
SHIFT_DR: next_tap_state = tms_pad_in ? EXIT1_DR : SHIFT_DR;
EXIT1_DR: next_tap_state = tms_pad_in ? UPDATE_DR : PAUSE_DR;
PAUSE_DR: next_tap_state = tms_pad_in ? EXIT2_DR : PAUSE_DR;
EXIT2_DR: next_tap_state = tms_pad_in ? UPDATE_DR : SHIFT_DR;
UPDATE_DR: next_tap_state = tms_pad_in ? SELECT_DR_SCAN : RUN_TEST_IDLE;
SELECT_IR_SCAN: next_tap_state = tms_pad_in ? TEST_LOGIC_RESET : CAPTURE_IR;
CAPTURE_IR: next_tap_state = tms_pad_in ? EXIT1_IR : SHIFT_IR;
SHIFT_IR: next_tap_state = tms_pad_in ? EXIT1_IR : SHIFT_IR;
EXIT1_IR: next_tap_state = tms_pad_in ? UPDATE_IR : PAUSE_IR;
PAUSE_IR: next_tap_state = tms_pad_in ? EXIT2_IR : PAUSE_IR;
EXIT2_IR: next_tap_state = tms_pad_in ? UPDATE_IR : SHIFT_IR;
UPDATE_IR: next_tap_state = tms_pad_in ? SELECT_DR_SCAN : RUN_TEST_IDLE;
endcase
 
 
//********************************************************************
//*** TAP Controller State Machine Register
//********************************************************************
 
 
always @(posedge jtag_clk or negedge trst_n_pad_in)
if (!trst_n_pad_in) tap_state <= TEST_LOGIC_RESET;
else tap_state <= next_tap_state;
 
 
// Decode tap_state to get Shift, Update, and Capture signals
 
 
 
always @(*)
begin
shift_ir = (tap_state == SHIFT_IR);
shift_dr_o = (tap_state == SHIFT_DR);
update_ir = (tap_state == UPDATE_IR);
update_dr_o = (tap_state == UPDATE_DR);
capture_dr_o = (tap_state == CAPTURE_DR);
capture_ir = (tap_state == CAPTURE_IR);
end
 
 
// Decode tap_state to get test_logic_reset signal
 
always @(posedge jtag_clk or negedge trst_n_pad_in)
if (!trst_n_pad_in) test_logic_reset_o <= 1'b1;
else
if (next_tap_state == TEST_LOGIC_RESET) test_logic_reset_o <= 1'b1;
else test_logic_reset_o <= 1'b0;
 
//******************************************************
//*** Instruction Register
//******************************************************
 
reg [INST_LENGTH-1:0] instruction_buffer;
reg [INST_LENGTH-1:0] instruction;
 
// buffer the instruction register while shifting
 
always @(posedge jtag_clk or negedge trst_n_pad_in)
if (!trst_n_pad_in) instruction_buffer <= INST_RESET;
else
if (capture_ir) instruction_buffer <= INST_RETURN;
else
if (shift_ir) instruction_buffer <= {tdi_pad_in,instruction_buffer[INST_LENGTH-1:1]};
 
always @(posedge jtag_clk or negedge trst_n_pad_in)
if (!trst_n_pad_in) instruction <= INST_RESET;
else
if (tap_state == TEST_LOGIC_RESET) instruction <= INST_RESET;
else
if (update_ir) instruction <= instruction_buffer;
 
 
 
 
 
 
assign tclk = tclk_pad_in;
assign tclk_n = !tclk_pad_in;
assign shiftcapture_dr = shift_dr_o || capture_dr_o;
assign tdi_o = tdi_pad_in;
assign trst_pad_in = !trst_n_pad_in;
 
// Instruction Decoder
assign extest = ( instruction == EXTEST );
assign sample = ( instruction == SAMPLE );
assign clamp = ( instruction == CLAMP );
assign chip_id_select = ( instruction == CHIP_ID_ACCESS );
 
// bypass anytime we are not doing a defined instructions, or if in clamp or bypass mode
 
assign bypass_select = ( instruction == CLAMP ) || ( instruction == BYPASS );
 
assign shiftcapture_dr_clk_o = jtag_shift_clk;
assign select_o = ( instruction == RPC_ADD );
assign aux_select_o = ( instruction == RPC_DATA );
assign bsr_select_o = ( instruction == EXTEST ) || ( instruction == SAMPLE ) ;
 
 
 
 
//**********************************************************
//** Boundary scan control signals
//**********************************************************
 
 
 
always @(posedge jtag_clk or negedge trst_n_pad_in)
if (!trst_n_pad_in) bsr_output_mode <= 1'b0;
else
if (tap_state == TEST_LOGIC_RESET) bsr_output_mode <= 1'b0;
else
if (update_ir) bsr_output_mode <= (instruction_buffer == EXTEST)
|| (instruction_buffer == CLAMP);
 
// Control chip pads when we are in highz_mode
always @(posedge jtag_clk or negedge trst_n_pad_in)
if (!trst_n_pad_in) tap_highz_mode <= 1'b0;
else if (tap_state == TEST_LOGIC_RESET) tap_highz_mode <= 1'b0;
else if (update_ir) tap_highz_mode <= (instruction_buffer == HIGHZ_MODE);
 
 
 
 
 
//**********************************************************
//*** Bypass register
//**********************************************************
 
always @(posedge jtag_clk or negedge trst_n_pad_in)
if (!trst_n_pad_in) bypass_tdo <= 1'b0;
else
if (capture_dr_o) bypass_tdo <= 1'b0;
else
if (shift_dr_o) bypass_tdo <= tdi_pad_in;
else bypass_tdo <= bypass_tdo;
 
 
//****************************************************************
//*** Choose what goes out on the TDO pin
//****************************************************************
 
// output the instruction register when tap_state[3] is 1, else
// put out the appropriate data register.
 
 
always@(*)
begin
if( tap_state[3] ) next_tdo = instruction_buffer[0];
else
if(bypass_select) next_tdo = bypass_tdo;
else
if(chip_id_select) next_tdo = chip_id_tdo;
else
if(select_o) next_tdo = tdo_i;
else
if(aux_select_o) next_tdo = aux_tdo_i;
else next_tdo = 1'b0;
end
 
reg tdo_pad_out_reg;
reg tdo_pad_oe_reg;
 
always @(posedge tclk_n or negedge trst_n_pad_in)
if (!trst_n_pad_in) tdo_pad_out_reg <= 1'b0;
else tdo_pad_out_reg <= next_tdo;
 
 
// output enable for TDO pad
 
always @(posedge tclk_n or negedge trst_n_pad_in)
if ( !trst_n_pad_in ) tdo_pad_oe_reg <= 1'b0;
else tdo_pad_oe_reg <= ( (tap_state == SHIFT_DR) || (tap_state == SHIFT_IR) );
 
 
 
assign tdo_pad_out = tdo_pad_out_reg;
assign tdo_pad_oe = tdo_pad_oe_reg;
 
`ifndef SYNTHESYS
 
reg [8*16-1:0] tap_string;
 
always @(tap_state) begin
case (tap_state)
TEST_LOGIC_RESET: tap_string = "TEST_LOGIC_RESET";
RUN_TEST_IDLE: tap_string = "RUN_TEST_IDLE";
SELECT_DR_SCAN: tap_string = "SELECT_DR_SCAN";
CAPTURE_DR: tap_string = "CAPTURE_DR";
SHIFT_DR: tap_string = "SHIFT_DR";
EXIT1_DR: tap_string = "EXIT1_DR";
PAUSE_DR: tap_string = "PAUSE_DR";
EXIT2_DR: tap_string = "EXIT2_DR";
UPDATE_DR: tap_string = "UPDATE_DR";
SELECT_IR_SCAN: tap_string = "SELECT_IR_SCAN";
CAPTURE_IR: tap_string = "CAPTURE_IR";
SHIFT_IR: tap_string = "SHIFT_IR";
EXIT1_IR: tap_string = "EXIT1_IR";
PAUSE_IR: tap_string = "PAUSE_IR";
EXIT2_IR: tap_string = "EXIT2_IR";
UPDATE_IR: tap_string = "UPDATE_IR";
default: tap_string = "-XXXXXX-";
endcase
 
$display("%t %m Tap State = %s",$realtime, tap_string);
end
 
 
 
reg [8*16-1:0] inst_string;
 
always @(instruction) begin
case (instruction)
EXTEST: inst_string = "EXTEST";
SAMPLE: inst_string = "SAMPLE";
HIGHZ_MODE: inst_string = "HIGHZ_MODE";
CHIP_ID_ACCESS: inst_string = "CHIP_ID_ACCESS";
CLAMP: inst_string = "CLAMP";
RPC_DATA: inst_string = "RPC_DATA";
RPC_ADD: inst_string = "RPC_ADD";
BYPASS: inst_string = "BYPASS";
default: inst_string = "-XXXXXX-";
endcase
 
$display("%t %m Instruction = %s",$realtime, inst_string);
end
`endif
 
/rtl/verilog/jtag_rpc_reg
0,0 → 1,25
 
// shift buffer and shadow
reg [BITS-1:0] buffer;
 
always @(posedge clk or posedge reset)
if (reset) buffer <= RESET_VALUE;
else
if (select && capture_dr) buffer <= capture_value;
else
if (select && shift_dr) buffer <= { tdi, buffer[BITS-1:1] };
else buffer <= buffer;
 
 
always @(posedge update_dr or posedge reset)
if (reset) update_value <= RESET_VALUE;
else
if (select) update_value <= buffer;
else update_value <= update_value;
 
 
 
assign tdo = buffer[0];
 
/rtl/verilog/jtag_tap
24,76 → 24,56
 
cde_jtag_tap
#( parameter
BYPASS=4'b1111,
CHIP_ID_ACCESS=4'b0011,
CHIP_ID_VAL=32'h12345678,
CLAMP=4'b1000,
EXTEST=4'b0000,
HIGHZ_MODE=4'b0010,
INST_LENGTH=4,
INST_RESET=4'b1111,
INST_RETURN=4'b1101,
INST_RESET=4'b1111,
NUM_USER=2,
USER=8'b1010_1001,
EXTEST=4'b0000,
RPC_ADD=4'b1001,
RPC_DATA=4'b1010,
SAMPLE=4'b0001,
HIGHZ_MODE=4'b0010,
CHIP_ID_ACCESS=4'b0011,
CLAMP=4'b1000,
RPC_DATA=4'b1010,
RPC_ADD=4'b1001,
BYPASS=4'b1111,
CHIP_ID_VAL=32'h12345678)
USER=8'b1010_1001)
 
(
input wire aux_tdo_i,
input wire bsr_tdo_i,
input wire tclk_pad_in,
input wire tdi_pad_in,
input wire tdo_i,
input wire tms_pad_in,
input wire trst_n_pad_in,
output wire tdo_pad_oe,
output wire tdo_pad_out,
 
output wire jtag_clk,
output wire update_dr_clk_o,
output wire shiftcapture_dr_clk_o,
 
 
output wire aux_jtag_clk,
output wire aux_update_dr_clk_o,
output wire aux_shiftcapture_dr_clk_o,
 
 
 
 
output reg test_logic_reset_o,
 
output wire aux_test_logic_reset_o,
 
 
output wire tdi_o,
 
output wire aux_tdi_o,
 
 
 
input wire tdo_i,
input wire aux_tdo_i,
input wire bsr_tdo_i,
 
 
 
output reg bsr_output_mode,
output reg capture_dr_o,
output reg shift_dr_o,
output reg tap_highz_mode,
output reg test_logic_reset_o,
output reg update_dr_o,
 
 
output wire aux_capture_dr_o,
output wire aux_select_o,
output wire aux_shift_dr_o,
output wire aux_update_dr_o,
 
 
output reg tap_highz_mode,
output reg bsr_output_mode,
 
output wire aux_shiftcapture_dr_clk_o,
output wire aux_tdi_o,
output wire aux_test_logic_reset_o,
output wire aux_update_dr_clk_o,
output wire tdi_o,
output wire select_o,
output wire aux_select_o,
 
output wire bsr_select_o
output wire tdo_pad_oe,
output wire tdo_pad_out,
output wire jtag_clk,
output wire update_dr_clk_o,
output wire shiftcapture_dr_clk_o,
output wire bsr_select_o
);
 
 
113,21 → 93,14
wire clamp;
wire extest;
wire sample;
wire shift_capture_dr;
wire tclk;
wire tclk_n;
wire trst_pad_in;
wire jtag_shift_clk;
wire aux_update_dr_o;
wire aux_jtag_clk;
 
 
assign aux_jtag_clk = jtag_clk;
assign aux_update_dr_clk_o = update_dr_clk_o;
assign aux_shiftcapture_dr_clk_o = shiftcapture_dr_clk_o;
assign aux_test_logic_reset_o = test_logic_reset_o;
assign aux_tdi_o = tdi_o;
assign aux_capture_dr_o = capture_dr_o;
assign aux_shift_dr_o = shift_dr_o;
assign aux_update_dr_o = update_dr_o;
 
////////////////////////////////////////////////////////////////
cde_clock_gater
136,7 → 109,7
.atg_clk_mode (1'b0),
.clk_in (tclk),
.clk_out (jtag_shift_clk),
.enable (shift_capture_dr));
.enable (shiftcapture_dr));
 
cde_clock_gater
clk_gater_jtag_update_clk
173,7 → 146,30
.tdi (tdi_pad_in),
.tdo (chip_id_tdo));
 
 
 
 
 
 
 
 
//********************************************************************
//*** assignments for 2nd channel
//********************************************************************
 
 
assign aux_jtag_clk = jtag_clk;
assign aux_update_dr_clk_o = update_dr_clk_o;
assign aux_shiftcapture_dr_clk_o = shiftcapture_dr_clk_o;
assign aux_test_logic_reset_o = test_logic_reset_o;
assign aux_tdi_o = tdi_o;
assign aux_capture_dr_o = capture_dr_o;
assign aux_shift_dr_o = shift_dr_o;
assign aux_update_dr_o = update_dr_o;
 
 
 
//********************************************************************
//*** TAP Controller State Machine
//********************************************************************
 
284,7 → 280,7
 
assign tclk = tclk_pad_in;
assign tclk_n = !tclk_pad_in;
assign shift_capture_dr = shift_dr_o || capture_dr_o;
assign shiftcapture_dr = shift_dr_o || capture_dr_o;
assign tdi_o = tdi_pad_in;
assign trst_pad_in = !trst_n_pad_in;
 
/rtl/verilog/top
0,0 → 1,286
//********************************************************************
//*** assignments for 2nd channel
//********************************************************************
 
 
assign aux_jtag_clk = jtag_clk;
assign aux_update_dr_clk_o = update_dr_clk_o;
assign aux_shiftcapture_dr_clk_o = shiftcapture_dr_clk_o;
assign aux_test_logic_reset_o = test_logic_reset_o;
assign aux_tdi_o = tdi_o;
assign aux_capture_dr_o = capture_dr_o;
assign aux_shift_dr_o = shift_dr_o;
assign aux_update_dr_o = update_dr_o;
 
 
 
//********************************************************************
//*** TAP Controller State Machine
//********************************************************************
 
 
// TAP state parameters
localparam TEST_LOGIC_RESET = 4'b1111,
RUN_TEST_IDLE = 4'b1100,
SELECT_DR_SCAN = 4'b0111,
CAPTURE_DR = 4'b0110,
SHIFT_DR = 4'b0010,
EXIT1_DR = 4'b0001,
PAUSE_DR = 4'b0011,
EXIT2_DR = 4'b0000,
UPDATE_DR = 4'b0101,
SELECT_IR_SCAN = 4'b0100,
CAPTURE_IR = 4'b1110,
SHIFT_IR = 4'b1010,
EXIT1_IR = 4'b1001,
PAUSE_IR = 4'b1011,
EXIT2_IR = 4'b1000,
UPDATE_IR = 4'b1101;
 
 
 
// next state decode for tap controller
always @(*)
case (tap_state) // synopsys parallel_case
TEST_LOGIC_RESET: next_tap_state = tms_pad_in ? TEST_LOGIC_RESET : RUN_TEST_IDLE;
RUN_TEST_IDLE: next_tap_state = tms_pad_in ? SELECT_DR_SCAN : RUN_TEST_IDLE;
SELECT_DR_SCAN: next_tap_state = tms_pad_in ? SELECT_IR_SCAN : CAPTURE_DR;
CAPTURE_DR: next_tap_state = tms_pad_in ? EXIT1_DR : SHIFT_DR;
SHIFT_DR: next_tap_state = tms_pad_in ? EXIT1_DR : SHIFT_DR;
EXIT1_DR: next_tap_state = tms_pad_in ? UPDATE_DR : PAUSE_DR;
PAUSE_DR: next_tap_state = tms_pad_in ? EXIT2_DR : PAUSE_DR;
EXIT2_DR: next_tap_state = tms_pad_in ? UPDATE_DR : SHIFT_DR;
UPDATE_DR: next_tap_state = tms_pad_in ? SELECT_DR_SCAN : RUN_TEST_IDLE;
SELECT_IR_SCAN: next_tap_state = tms_pad_in ? TEST_LOGIC_RESET : CAPTURE_IR;
CAPTURE_IR: next_tap_state = tms_pad_in ? EXIT1_IR : SHIFT_IR;
SHIFT_IR: next_tap_state = tms_pad_in ? EXIT1_IR : SHIFT_IR;
EXIT1_IR: next_tap_state = tms_pad_in ? UPDATE_IR : PAUSE_IR;
PAUSE_IR: next_tap_state = tms_pad_in ? EXIT2_IR : PAUSE_IR;
EXIT2_IR: next_tap_state = tms_pad_in ? UPDATE_IR : SHIFT_IR;
UPDATE_IR: next_tap_state = tms_pad_in ? SELECT_DR_SCAN : RUN_TEST_IDLE;
endcase
 
 
//********************************************************************
//*** TAP Controller State Machine Register
//********************************************************************
 
 
always @(posedge jtag_clk or negedge trst_n_pad_in)
if (!trst_n_pad_in) tap_state <= TEST_LOGIC_RESET;
else tap_state <= next_tap_state;
 
 
// Decode tap_state to get Shift, Update, and Capture signals
 
 
 
always @(*)
begin
shift_ir = (tap_state == SHIFT_IR);
shift_dr_o = (tap_state == SHIFT_DR);
update_ir = (tap_state == UPDATE_IR);
update_dr_o = (tap_state == UPDATE_DR);
capture_dr_o = (tap_state == CAPTURE_DR);
capture_ir = (tap_state == CAPTURE_IR);
end
 
 
// Decode tap_state to get test_logic_reset signal
 
always @(posedge jtag_clk or negedge trst_n_pad_in)
if (!trst_n_pad_in) test_logic_reset_o <= 1'b1;
else
if (next_tap_state == TEST_LOGIC_RESET) test_logic_reset_o <= 1'b1;
else test_logic_reset_o <= 1'b0;
 
//******************************************************
//*** Instruction Register
//******************************************************
 
reg [INST_LENGTH-1:0] instruction_buffer;
reg [INST_LENGTH-1:0] instruction;
 
// buffer the instruction register while shifting
 
always @(posedge jtag_clk or negedge trst_n_pad_in)
if (!trst_n_pad_in) instruction_buffer <= INST_RESET;
else
if (capture_ir) instruction_buffer <= INST_RETURN;
else
if (shift_ir) instruction_buffer <= {tdi_pad_in,instruction_buffer[INST_LENGTH-1:1]};
 
always @(posedge jtag_clk or negedge trst_n_pad_in)
if (!trst_n_pad_in) instruction <= INST_RESET;
else
if (tap_state == TEST_LOGIC_RESET) instruction <= INST_RESET;
else
if (update_ir) instruction <= instruction_buffer;
 
 
 
 
 
 
assign tclk = tclk_pad_in;
assign tclk_n = !tclk_pad_in;
assign shift_capture_dr = shift_dr_o || capture_dr_o;
assign tdi_o = tdi_pad_in;
assign trst_pad_in = !trst_n_pad_in;
 
// Instruction Decoder
assign extest = ( instruction == EXTEST );
assign sample = ( instruction == SAMPLE );
assign clamp = ( instruction == CLAMP );
assign chip_id_select = ( instruction == CHIP_ID_ACCESS );
 
// bypass anytime we are not doing a defined instructions, or if in clamp or bypass mode
 
assign bypass_select = ( instruction == CLAMP ) || ( instruction == BYPASS );
 
assign shiftcapture_dr_clk_o = jtag_shift_clk;
assign select_o = ( instruction == RPC_ADD );
assign aux_select_o = ( instruction == RPC_DATA );
assign bsr_select_o = ( instruction == EXTEST ) || ( instruction == SAMPLE ) ;
 
 
 
 
//**********************************************************
//** Boundary scan control signals
//**********************************************************
 
 
 
always @(posedge jtag_clk or negedge trst_n_pad_in)
if (!trst_n_pad_in) bsr_output_mode <= 1'b0;
else
if (tap_state == TEST_LOGIC_RESET) bsr_output_mode <= 1'b0;
else
if (update_ir) bsr_output_mode <= (instruction_buffer == EXTEST)
|| (instruction_buffer == CLAMP);
 
// Control chip pads when we are in highz_mode
always @(posedge jtag_clk or negedge trst_n_pad_in)
if (!trst_n_pad_in) tap_highz_mode <= 1'b0;
else if (tap_state == TEST_LOGIC_RESET) tap_highz_mode <= 1'b0;
else if (update_ir) tap_highz_mode <= (instruction_buffer == HIGHZ_MODE);
 
 
 
 
 
//**********************************************************
//*** Bypass register
//**********************************************************
 
always @(posedge jtag_clk or negedge trst_n_pad_in)
if (!trst_n_pad_in) bypass_tdo <= 1'b0;
else
if (capture_dr_o) bypass_tdo <= 1'b0;
else
if (shift_dr_o) bypass_tdo <= tdi_pad_in;
else bypass_tdo <= bypass_tdo;
 
 
//****************************************************************
//*** Choose what goes out on the TDO pin
//****************************************************************
 
// output the instruction register when tap_state[3] is 1, else
// put out the appropriate data register.
 
 
always@(*)
begin
if( tap_state[3] ) next_tdo = instruction_buffer[0];
else
if(bypass_select) next_tdo = bypass_tdo;
else
if(chip_id_select) next_tdo = chip_id_tdo;
else
if(select_o) next_tdo = tdo_i;
else
if(aux_select_o) next_tdo = aux_tdo_i;
else next_tdo = 1'b0;
end
 
reg tdo_pad_out_reg;
reg tdo_pad_oe_reg;
 
always @(posedge tclk_n or negedge trst_n_pad_in)
if (!trst_n_pad_in) tdo_pad_out_reg <= 1'b0;
else tdo_pad_out_reg <= next_tdo;
 
 
// output enable for TDO pad
 
always @(posedge tclk_n or negedge trst_n_pad_in)
if ( !trst_n_pad_in ) tdo_pad_oe_reg <= 1'b0;
else tdo_pad_oe_reg <= ( (tap_state == SHIFT_DR) || (tap_state == SHIFT_IR) );
 
 
 
assign tdo_pad_out = tdo_pad_out_reg;
assign tdo_pad_oe = tdo_pad_oe_reg;
 
`ifndef SYNTHESYS
 
reg [8*16-1:0] tap_string;
 
always @(tap_state) begin
case (tap_state)
TEST_LOGIC_RESET: tap_string = "TEST_LOGIC_RESET";
RUN_TEST_IDLE: tap_string = "RUN_TEST_IDLE";
SELECT_DR_SCAN: tap_string = "SELECT_DR_SCAN";
CAPTURE_DR: tap_string = "CAPTURE_DR";
SHIFT_DR: tap_string = "SHIFT_DR";
EXIT1_DR: tap_string = "EXIT1_DR";
PAUSE_DR: tap_string = "PAUSE_DR";
EXIT2_DR: tap_string = "EXIT2_DR";
UPDATE_DR: tap_string = "UPDATE_DR";
SELECT_IR_SCAN: tap_string = "SELECT_IR_SCAN";
CAPTURE_IR: tap_string = "CAPTURE_IR";
SHIFT_IR: tap_string = "SHIFT_IR";
EXIT1_IR: tap_string = "EXIT1_IR";
PAUSE_IR: tap_string = "PAUSE_IR";
EXIT2_IR: tap_string = "EXIT2_IR";
UPDATE_IR: tap_string = "UPDATE_IR";
default: tap_string = "-XXXXXX-";
endcase
 
$display("%t %m Tap State = %s",$realtime, tap_string);
end
 
 
 
reg [8*16-1:0] inst_string;
 
always @(instruction) begin
case (instruction)
EXTEST: inst_string = "EXTEST";
SAMPLE: inst_string = "SAMPLE";
HIGHZ_MODE: inst_string = "HIGHZ_MODE";
CHIP_ID_ACCESS: inst_string = "CHIP_ID_ACCESS";
CLAMP: inst_string = "CLAMP";
RPC_DATA: inst_string = "RPC_DATA";
RPC_ADD: inst_string = "RPC_ADD";
BYPASS: inst_string = "BYPASS";
default: inst_string = "-XXXXXX-";
endcase
 
$display("%t %m Instruction = %s",$realtime, inst_string);
end
`endif
 
/rtl/verilog/copyright
0,0 → 1,21
/**********************************************************************/
/* */
/* */
/* Copyright (c) 2012-2015 Ouabache Design Works */
/* */
/* All Rights Reserved Worldwide */
/* */
/* Licensed under the Apache License,Version2.0 (the'License'); */
/* you may not use this file except in compliance with the License. */
/* You may obtain a copy of the License at */
/* */
/* http://www.apache.org/licenses/LICENSE-2.0 */
/* */
/* Unless required by applicable law or agreed to in */
/* writing, software distributed under the License is */
/* distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES */
/* OR CONDITIONS OF ANY KIND, either express or implied. */
/* See the License for the specific language governing */
/* permissions and limitations under the License. */
/**********************************************************************/
 
/rtl/verilog/classic_rpc_in_reg
0,0 → 1,17
// shift buffer and shadow
reg [BITS-1:0] buffer;
 
always @(posedge shiftcapture_dr_clk or posedge test_logic_reset)
if (test_logic_reset) buffer <= RESET_VALUE;
else
if (select && capture_dr) buffer <= capture_value;
else
if (select && shift_dr) buffer <= { tdi, buffer[BITS-1:1] };
else buffer <= buffer;
 
 
 
assign tdo = buffer[0];
 
 
/rtl/verilog/sync
0,0 → 1,7
assign syn_clk = clk;
assign syn_select = select;
assign syn_tdo = tdi;
assign tdo = syn_tdi;
assign syn_capture_dr = capture_dr;
assign syn_shift_dr = shift_dr ;
assign syn_update_dr = update_dr;
/rtl/verilog/jtag_rpc_in_reg
0,0 → 1,19
 
// shift buffer and shadow
reg [BITS-1:0] buffer;
 
always @(posedge clk or posedge reset)
if (reset) buffer <= RESET_VALUE;
else
if (select && capture_dr) buffer <= capture_value;
else
if (select && shift_dr) buffer <= { tdi, buffer[BITS-1:1] };
else buffer <= buffer;
 
 
 
assign tdo = buffer[0];
 
 
/rtl/verilog/classic_sync
0,0 → 1,122
reg synced_reset;
 
always@(posedge clk or posedge test_logic_reset )
if(test_logic_reset)
begin
synced_reset <= 1'b1;
syn_reset <= 1'b1;
end
else
begin
synced_reset <= test_logic_reset;
syn_reset <= synced_reset;
end
 
reg synced_shift_dr;
reg synced_capture_dr;
 
 
always@(posedge clk)
if(!shiftcapture_dr_clk)
begin
synced_shift_dr <= shift_dr ;
synced_capture_dr <= capture_dr ;
end
else
begin
synced_shift_dr <= synced_shift_dr ;
synced_capture_dr <= synced_capture_dr ;
end
 
 
reg [1:0] synced_shiftcapture_dr_clk;
 
always@(posedge clk)
synced_shiftcapture_dr_clk <= {synced_shiftcapture_dr_clk[0],shiftcapture_dr_clk};
 
 
reg [1:0] synced_update_dr_clk;
 
always@(posedge clk)
synced_update_dr_clk <= {synced_update_dr_clk[0],update_dr_clk};
 
 
always@(posedge clk)
if(synced_shiftcapture_dr_clk == 2'b01)
begin
syn_shift_dr <= synced_shift_dr ;
syn_capture_dr <= synced_capture_dr ;
end
else
begin
syn_shift_dr <= 1'b0 ;
syn_capture_dr <= 1'b0 ;
end
 
 
always@(posedge clk)
if(synced_update_dr_clk == 2'b01)
begin
syn_update_dr <= 1'b1 ;
end
else
begin
syn_update_dr <= 1'b0 ;
end
 
 
 
always@(posedge clk)
if(!shiftcapture_dr_clk && (shift_dr || capture_dr ))
begin
syn_tdi_o <= tdi ;
end
else
begin
syn_tdi_o <= syn_tdi_o ;
end
 
 
 
 
 
 
 
 
always@(posedge clk)
if(synced_update_dr_clk == 2'b01)
begin
syn_select <= select;
end
else if(synced_shiftcapture_dr_clk == 2'b01)
begin
syn_select <= select;
end
else
begin
syn_select <= syn_select;
end
 
 
 
 
 
 
assign syn_clk = clk;
assign tdo = syn_tdo_i;
 
/doc/Geda/html/cde_jtag_tap.html
80,7 → 80,7
 
<tr>
<td style="vertical-align: top;">CHIP_ID_VAL<br> </td>
<td style="vertical-align: top;">32'h12345678<br> </td>
<td style="vertical-align: top;">32'h00000000<br> </td>
<td style="vertical-align: top;"><br></td>
</tr>
 
/doc/Geda/html/cde_jtag_classic_rpc_in_reg.html
47,7 → 47,7
</li>
</ul>
</div>
<img style="width: 613px; height: 278px;" alt="" src="../png/cde_jtag_classic_rpc_in_reg_sym.png"><br>
<img style="width: 613px; height: 302px;" alt="" src="../png/cde_jtag_classic_rpc_in_reg_sym.png"><br>
<b><br>
<h2><b><a name="Parameters"></a>Parameters<br></b></h2>
<b><br>
145,6 → 145,12
<td style="vertical-align: top;"><br> </td>
</tr>
 
<tr>
<td style="vertical-align: top;">update_dr_clk<br> </td>
<td style="vertical-align: top;">input<br> </td>
<td style="vertical-align: top;"><br> </td>
</tr>
 
</tbody>
</table>
<p><b><b><br>
173,7 → 179,7
<br>
<br>
<br>
<img style="width: 613px; height: 278px;" alt="" src="../png/cde_jtag_classic_rpc_in_reg_sch.png"><br>
<img style="width: 613px; height: 302px;" alt="" src="../png/cde_jtag_classic_rpc_in_reg_sch.png"><br>
<b><br>
<br>
<br>
/sim/testbenches/xml/cde_jtag_classic_sync_tb.xml
30,15 → 30,8
<spirit:parameters>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>top.tb.classic_sync</spirit:value>
<spirit:value>jtag_classic_sync_tb</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>dest_dir</spirit:name>
<spirit:value>../verilog</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>top</spirit:name>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
167,7 → 160,7
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/top.tb.classic_sync</spirit:name>
<spirit:name>../verilog/common/jtag_classic_sync_tb</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
179,7 → 172,7
<spirit:name>fs-lint</spirit:name>
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/top.tb.classic_sync</spirit:name>
<spirit:name>../verilog/common/jtag_classic_sync_tb</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
/sim/testbenches/xml/jtag_tap_duth.design.xml
0,0 → 1,214
<?xml version="1.0" encoding="UTF-8"?>
<!--
// //
// Generated File Do Not EDIT //
// //
// ./tools/verilog/gen_tb -vendor opencores.org -library cde -component jtag -version tap //
// //
-->
<spirit:design
xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009"
xmlns:socgen="http://opencores.org"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009
http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd">
<spirit:vendor>opencores.org</spirit:vendor>
<spirit:library>cde</spirit:library>
<spirit:name>jtag</spirit:name>
<spirit:version>tap_duth.design</spirit:version>
<spirit:adHocConnections>
 
<spirit:adHocConnection>
<spirit:name>aux_capture_dr_o</spirit:name>
<spirit:externalPortReference spirit:portRef="aux_capture_dr_o" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="aux_capture_dr_o" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>aux_select_o</spirit:name>
<spirit:externalPortReference spirit:portRef="aux_select_o" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="aux_select_o" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>aux_shift_dr_o</spirit:name>
<spirit:externalPortReference spirit:portRef="aux_shift_dr_o" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="aux_shift_dr_o" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>aux_shiftcapture_dr_clk_o</spirit:name>
<spirit:externalPortReference spirit:portRef="aux_shiftcapture_dr_clk_o" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="aux_shiftcapture_dr_clk_o" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>aux_tdi_o</spirit:name>
<spirit:externalPortReference spirit:portRef="aux_tdi_o" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="aux_tdi_o" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>aux_tdo_i</spirit:name>
<spirit:externalPortReference spirit:portRef="aux_tdo_i" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="aux_tdo_i" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>aux_test_logic_reset_o</spirit:name>
<spirit:externalPortReference spirit:portRef="aux_test_logic_reset_o" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="aux_test_logic_reset_o" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>aux_update_dr_clk_o</spirit:name>
<spirit:externalPortReference spirit:portRef="aux_update_dr_clk_o" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="aux_update_dr_clk_o" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>bsr_output_mode</spirit:name>
<spirit:externalPortReference spirit:portRef="bsr_output_mode" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="bsr_output_mode" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>bsr_select_o</spirit:name>
<spirit:externalPortReference spirit:portRef="bsr_select_o" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="bsr_select_o" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>bsr_tdo_i</spirit:name>
<spirit:externalPortReference spirit:portRef="bsr_tdo_i" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="bsr_tdo_i" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>capture_dr_o</spirit:name>
<spirit:externalPortReference spirit:portRef="capture_dr_o" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="capture_dr_o" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>jtag_clk</spirit:name>
<spirit:externalPortReference spirit:portRef="jtag_clk" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="jtag_clk" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>select_o</spirit:name>
<spirit:externalPortReference spirit:portRef="select_o" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="select_o" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>shift_dr_o</spirit:name>
<spirit:externalPortReference spirit:portRef="shift_dr_o" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="shift_dr_o" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>shiftcapture_dr_clk_o</spirit:name>
<spirit:externalPortReference spirit:portRef="shiftcapture_dr_clk_o" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="shiftcapture_dr_clk_o" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tap_highz_mode</spirit:name>
<spirit:externalPortReference spirit:portRef="tap_highz_mode" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="tap_highz_mode" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tclk_pad_in</spirit:name>
<spirit:externalPortReference spirit:portRef="tclk_pad_in" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="tclk_pad_in" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tdi_o</spirit:name>
<spirit:externalPortReference spirit:portRef="tdi_o" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="tdi_o" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tdi_pad_in</spirit:name>
<spirit:externalPortReference spirit:portRef="tdi_pad_in" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="tdi_pad_in" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tdo_i</spirit:name>
<spirit:externalPortReference spirit:portRef="tdo_i" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="tdo_i" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tdo_pad_oe</spirit:name>
<spirit:externalPortReference spirit:portRef="tdo_pad_oe" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="tdo_pad_oe" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tdo_pad_out</spirit:name>
<spirit:externalPortReference spirit:portRef="tdo_pad_out" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="tdo_pad_out" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>test_logic_reset_o</spirit:name>
<spirit:externalPortReference spirit:portRef="test_logic_reset_o" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="test_logic_reset_o" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>tms_pad_in</spirit:name>
<spirit:externalPortReference spirit:portRef="tms_pad_in" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="tms_pad_in" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>trst_n_pad_in</spirit:name>
<spirit:externalPortReference spirit:portRef="trst_n_pad_in" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="trst_n_pad_in" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>update_dr_clk_o</spirit:name>
<spirit:externalPortReference spirit:portRef="update_dr_clk_o" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="update_dr_clk_o" />
</spirit:adHocConnection>
 
<spirit:adHocConnection>
<spirit:name>update_dr_o</spirit:name>
<spirit:externalPortReference spirit:portRef="update_dr_o" />
<spirit:internalPortReference spirit:componentRef="dut" spirit:portRef="update_dr_o" />
</spirit:adHocConnection>
 
 
</spirit:adHocConnections>
<spirit:componentInstances>
 
<spirit:componentInstance>
<spirit:instanceName>dut</spirit:instanceName>
<spirit:componentRef spirit:vendor="opencores.org" spirit:library="cde" spirit:name="jtag" spirit:version="tap" />
<spirit:configurableElementValues>
<spirit:configurableElementValue spirit:referenceId="BYPASS">BYPASS</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="CHIP_ID_ACCESS">CHIP_ID_ACCESS</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="CHIP_ID_VAL">CHIP_ID_VAL</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="CLAMP">CLAMP</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="EXTEST">EXTEST</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="HIGHZ_MODE">HIGHZ_MODE</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="INST_LENGTH">INST_LENGTH</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="INST_RESET">INST_RESET</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="INST_RETURN">INST_RETURN</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="NUM_USER">NUM_USER</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="RPC_ADD">RPC_ADD</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="RPC_DATA">RPC_DATA</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="SAMPLE">SAMPLE</spirit:configurableElementValue>
<spirit:configurableElementValue spirit:referenceId="USER">USER</spirit:configurableElementValue>
</spirit:configurableElementValues>
</spirit:componentInstance>
</spirit:componentInstances>
</spirit:design>
/sim/testbenches/xml/cde_jtag_classic_tb.xml
30,15 → 30,8
<spirit:parameters>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>top.tb.classic</spirit:value>
<spirit:value>jtag_classic_tb</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>dest_dir</spirit:name>
<spirit:value>../verilog</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>top</spirit:name>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
144,9 → 137,6
<spirit:name>fs-common</spirit:name>
 
 
 
 
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/tb.rpc_2</spirit:name>
167,7 → 157,7
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/top.tb.classic</spirit:name>
<spirit:name>../verilog/common/jtag_classic_tb</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
179,7 → 169,7
<spirit:name>fs-lint</spirit:name>
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/top.tb.classic</spirit:name>
<spirit:name>../verilog/common/jtag_classic_tb</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
/sim/testbenches/xml/cde_jtag_tap_tb.xml
30,15 → 30,8
<spirit:parameters>
<spirit:parameter>
<spirit:name>destination</spirit:name>
<spirit:value>top.tb</spirit:value>
<spirit:value>jtag_tap_tb</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>dest_dir</spirit:name>
<spirit:value>../verilog</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>top</spirit:name>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
167,7 → 160,7
 
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/top.tb</spirit:name>
<spirit:name>../verilog/common/jtag_tap_tb</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
179,7 → 172,7
<spirit:name>fs-lint</spirit:name>
<spirit:file>
<spirit:logicalName></spirit:logicalName>
<spirit:name>../verilog/common/top.tb</spirit:name>
<spirit:name>../verilog/common/jtag_tap_tb</spirit:name>
<spirit:fileType>verilogSource</spirit:fileType><spirit:userFileType>module</spirit:userFileType>
</spirit:file>
 
/sim/testbenches/xml/cde_jtag_tap_lint.xml
18,40 → 18,7
 
<spirit:componentGenerators>
 
<spirit:componentGenerator>
<spirit:name>elab_verilog</spirit:name>
<spirit:phase>103.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:vendorExtensions><socgen:envIdentifier>:*Simulation:*</socgen:envIdentifier></spirit:vendorExtensions
>
<spirit:generatorExe>./tools/verilog/elab_verilog</spirit:generatorExe>
<spirit:parameters>
<spirit:parameter>
<spirit:name>configuration</spirit:name>
<spirit:value>default</spirit:value>
</spirit:parameter>
<spirit:parameter>
<spirit:name>dest_dir</spirit:name>
<spirit:value>io_ports</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
<spirit:componentGenerator>
<spirit:name>gen_design</spirit:name>
<spirit:phase>103.0</spirit:phase>
<spirit:apiType>none</spirit:apiType>
<spirit:vendorExtensions><socgen:envIdentifier>:*Simulation:*</socgen:envIdentifier></spirit:vendorExtensions
>
<spirit:generatorExe>./tools/verilog/gen_design</spirit:generatorExe>
<spirit:parameters>
<spirit:parameter>
<spirit:name>dest_dir</spirit:name>
<spirit:value>io_ports</spirit:value>
</spirit:parameter>
</spirit:parameters>
</spirit:componentGenerator>
 
</spirit:componentGenerators>
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.