使用Tcl设置verilog净值预合成

使用Tcl设置verilog净值预合成,tcl,verilog,system-verilog,xilinx,vivado,Tcl,Verilog,System Verilog,Xilinx,Vivado,我在main.sv中定义了以下值,只需设置一次: logic [31:0] random_number; 我不想浪费资源在合成的HDL中随机化这个值,所以我想到我可能可以在Tcl脚本中这样做。我的目标是: 使用Tcl脚本重写HDL文件,初始化值如下: logic[31:0]随机数=32'd1057 使用Tcl脚本将值设置为预钩子中的网络 不幸的是,我不知道如何使用tcl来做这些事情。任何建议都将不胜感激。如果导线由恒定值驱动,则无论该值如何计算,都不会浪费任何资源。合成器将计算它并分配给您的导

我在main.sv中定义了以下值,只需设置一次:

logic [31:0] random_number;
我不想浪费资源在合成的HDL中随机化这个值,所以我想到我可能可以在Tcl脚本中这样做。我的目标是:

  • 使用Tcl脚本重写HDL文件,初始化值如下:

    logic[31:0]随机数=32'd1057

  • 使用Tcl脚本将值设置为预钩子中的网络


  • 不幸的是,我不知道如何使用tcl来做这些事情。任何建议都将不胜感激。

    如果导线由恒定值驱动,则无论该值如何计算,都不会浪费任何资源。合成器将计算它并分配给您的导线。从电子角度来看,逻辑变量的位与VCC和GND相关。就这些

    所以,就用这样的方法:

    wire [31:0] random_number = $random;
    

    您需要澄清您是否希望设计具有硬编码的随机值,或者是否希望使用随机值测试您的设计。在这种情况下,您需要编写一个测试台来模拟它。事实上,我希望设计有一个硬编码的随机值,每个合成都不同。如果是这样的话,构建流应生成一个新的verilog文件,该文件将包含在设计中,以便设置或定义该随机数。您为什么不使用随机值的参数并在TCL脚本中分配它?该值将在运行时更改。