vivado mmcm 生成1m的脚本写法 tcl写法
时间: 2023-09-30 16:06:30 浏览: 220
以下是在Vivado中生成一个1MHz的MMCM IP核的Tcl脚本:
```
#create_clock -period 1 [get_ports clk]
create_clock -period 1 -name clk [get_ports clk]
set_property -dict { PACKAGE_PIN P5 IOSTANDARD LVCMOS33 } [get_ports clk]
create_clock -period 1 -name sys_clk
set_property -dict { PACKAGE_PIN L16 IOSTANDARD LVCMOS33 } [get_ports sys_clk]
# create mmcm instance
create_ip -name mmcm -vendor xilinx.com -library ip -module_name mmcm -dir ./mmcm
set_property -dict {CONFIG.NUM_OUT_CLKS 1 CONFIG.CLKOUT0_JITTER 0.01} [get_ips mmcm]
# set mmcm properties
set_property -dict {CONFIG.CLKIN1_PERIOD 1 CONFIG.CLKFBOUT_MULT_F 10 CONFIG.CLKFBOUT_MULT 10 CONFIG.CLKOUT0_DIVIDE_F 10 CONFIG.CLKOUT0_DIVIDE 10 CONFIG.CLKOUT0_PHASE 0.0 CONFIG.CLKOUT0_DUTY_CYCLE 0.5} [get_ips mmcm]
# generate IP
generate_target {instantiation_template} [get_ips mmcm]
# add constraints
set_property -dict { PACKAGE_PIN P10 IOSTANDARD LVCMOS33 } [get_ports clk_out0]
set_property -dict { CLOCK_DEDICATED_ROUTE FALSE } [get_nets clk_out0_IBUF]
set_property -dict { PACKAGE_PIN L5 IOSTANDARD LVCMOS33 } [get_ports reset]
# generate bitstream
make_wrapper -files [get_files ./mmcm/mmcm.xci] -top
synth_design -top top
place_design
route_design
write_bitstream -force ./mmcm.bit
```
该脚本首先使用 `create_clock` 命令创建了两个时钟,一个是名为 `clk` 的输入时钟,另一个是名为 `sys_clk` 的系统时钟。然后,使用 `create_ip` 命令创建了一个名为 `mmcm` 的IP核,并使用 `set_property` 命令设置了一些属性,如输入时钟的周期、倍频因子、输出时钟的分频因子等。接下来,使用 `generate_target` 命令生成了IP核的实例化模板。然后,使用 `set_property` 命令设置了一些约束,如输出时钟的引脚约束、时钟网络的约束等。最后,使用 `make_wrapper` 命令生成了一个名为 `top` 的顶层设计,使用 `synth_design`、`place_design` 和 `route_design` 命令进行综合、布局和布线,并使用 `write_bitstream` 命令生成了比特流文件。
阅读全文