当前位置 博文首页 > 文章内容

    使用 TCL 脚本添加 ip

    作者: 栏目:未分类 时间:2020-09-13 17:00:19

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    使用 TCL 脚本添加 ip

    以 BRAM 为例定制化 ip

    以下为 tcl 脚本代码示例,用前需要删除注释

    DeepinScreenshot_select-area_20200913112402

    image-20200913113119234

    image-20200913164643244

    create_ip \
    -name blk_mem_gen \ # 这里指定的是要加入的 ip 的类型名
    -vendor xilinx.com -library ip \
    -module_name blkm \ # 这里指定的是定制化 ip 后,类似于 verilog 中 module 的名字
    -dir $ipdir -force
    set_property -dict [list \
    	CONFIG.Interface_Type {Native} \ # 对应上图中的 A
    	CONFIG.Memory_Type {True_Dual_Port_RAM} \ # 对应上图中的 B
    	CONFIG.ecctype {No_ECC} \ # 对应上图中的 C
    	CONFIG.Algorithm {Minimum_Area} \ # 对应上图中的 D
    	CONFIG.Primitive {8kx2} \ # 对应上图中的 E
    	CONFIG.Write_Width_A {34} \  # 对应上图中的 F
    	CONFIG.Read_Width_A {34} \ # 对应上图中的 G
    	CONFIG.Write_Depth_A {10081} \ # 对应上图中的 H ## 此属性只用配置这一个 则 A 的读深度和 B 的读写深度都确定了
    	CONFIG.Operating_Mode_A {READ_FIRST} \ # 对应上图中的 I
    	CONFIG.Enable_A {Use_ENA_Pin} \ # 对应上图中的 J
    	CONFIG.Register_PortA_Output_of_Memory_Core {false} \ # 对应上图中的 K
    	CONFIG.Register_PortA_Output_of_Memory_Primitives {false} \ # 对应上图中的 L
    	CONFIG.Use_RSTA_Pin {false} \ # 对应上图中的 M
    	CONFIG.Output_Reset_Value_A {0} \ # 对应上图中的 N
    	# B 端口的配置与 A 类似 故不赘述
    	CONFIG.Load_Init_File {true} \ # 对应上图中的 O
    	CONFIG.Coe_File {/home/rv/riscv/test/test1/test1.srcs/sources_1/ip/blk_mem_gen_0/TEST.coe} \ # 对应上图中的 P
    	] [get_ips blkm] # 这里要和上面的
    

    如何寻找 tcl 中 ip 定制化所需要的属性名

    建议新建一个小工程,然后通过定制化特定的 ip 的属性值,然后在形如下图的路径下找到 ip 的 xci 文件

    image-20200913165328506

    然后,根据特定的值,找到 ip 定制化所需要的属性名