当前位置:首页 » 数据仓库 » 怎么重新配置xdc文件
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

怎么重新配置xdc文件

发布时间: 2022-12-21 04:00:57

Ⅰ 打开XDC格式文件

防盗拷CD.你用NERO刻到盘上试试.

Ⅱ 请教高手:如何在windows下打开XDC文件啊

在Linux系统中我们用make命令根据makefile来生成可执行文件,xDC也有类似的生成脚本文件(我们统称为xDC文件)。Linux系统中可以打开

Ⅲ 如何在CCS3.3下建立基于DSP-BIOS和XDC的工程详解

首先我们要先配置一下XDC工具链,什么叫做配置呢,实际上就是要让这条工具链写入到系统的注册表中间去,下面是整个工具链的配置过程:

1、运行windows命令行工具。

打开compiler选项卡,配置如下:

-g-@"=$(Proj_dir)/xdcconfig/compiler.opt" -pdr -fr"$(Proj_dir)/Debug" -i"$(Proj_dir)" -i"." -i"%BIOSDVSDK_INSTALL_DIR%/examples/common/evmDM6437" -i"%BSL_EVMDM6437_INSTALLDIR%/include" -i"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/inc" -i"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/drivers/inc" -i"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/soc/dm6437/dsp/inc" -i"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/edma3/inc" -d"_DEBUG" -mv6400+

打开linker选项卡,配置如下:

-a -c -m"./Debug/BIOS_XDC_Project_Test.map" -o"./Debug/BIOS_XDC_Project_Test.out" -w -x -i"%BIOS_INSTALL_DIR%/packages/ti/rtdx/lib/c6000" -l"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/lib/DM6437/Debug/i2c_bios_drv.lib" -l"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/lib/DM6437/Debug/palos_bios.lib" -l"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/lib/DM6437/Debug/prev_bios_drv.lib" -l"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/lib/DM6437/Debug/video_bios_drv.lib" -l"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/lib/DM6437/Debug/vpbe_bios_drv.lib" -l"%BIOSDVSDK_INSTALL_DIR%/psp_1_00_02_00/pspdrivers/lib/DM6437/Debug/vpfe_bios_drv.lib"

打开dspbiosbulider选项卡,配置如下:

-Dconfig.importPath="C:/CCStudio_v3.3/bios_5_31_02/packages;"

打开XDC选项卡,配置如下:

--xdcpathsfile="xdcpaths.dat" -tti.targets.C64P -pti.platforms.evmDM6437 -Dconfig.importPath=".../%BIOSDVSDK_INSTALL_DIR%/examples/common/evmDM6437" --tcf

以上配置我也是直接那个例程的配置,当然这里面的配置可以按照自己的需要进行相应的修改以适应自己的工程需求

7、修改DSPBIOS的memory配置需求,因为至少要有一个堆heap(否则会编译出错的),所以我们首先要建立一个堆,DSPBIOS默认的配置中是没有的

8、修改DSPBIOS编译配置

9、编译整个工程

如果建立成功的话就会有上面所示的提示信息,呵呵~~~~~

这样一个完整的基于XDC工具的DSPBIOS工程就建立好了。

Ⅳ setupdebug后需要重新综合吗

第一步:标记出来需要抓的信号

这里重点说明一下,网络上绝大多数(几乎所有)的资料包括博客都是用(*mark_debug=''ture''*) 来标记要抓的信号,但是随着vivado版本的更新,这种标记语言已经不行了,正确的标记方式是(*mark_debug=''1'' *) 否则布局布线会产生critical warining。

第二步:重新综合

然后setup debug 选择之前标记的信号,给标记的信号选择采样时钟,注意,这个时钟选择正确与否决定后续能不能正常进行在线逻辑分析,根据采样定理,采样时钟至少是被标记信号逻辑时钟的两倍以上。PLL分频出来的时钟可以直接拿来用,亲测没有问题。

第三步:布局布线

布局布线完成后可以看到xdc文件已经更新了ila核的约束,(如果要对标记的信号修改,比如增加或者删除某个被标记的信号,建议手动将xdc文件中ila核的约束删除,软件自己refrash可能会有bug。

第四步:生成bit流文件

(在分配好管脚之后)生成bit流文件,下载到板子上,ila核触发界面自动弹出,进行在线逻辑仿真。

Ⅳ vivado 修改了xdc文件需要重新编译综合吗

vivado 修改了xdc文件需要重新编译综合
Vivado Logic Analyzer的使用
chipscope中,通常有两种方法设置需要捕获的信号。
1.添加cdc文件,然后在网表中寻找并添加信号
2.添加ICON、ILA和VIO的IP Core
第一种方法,代码的修改量小,适当的保留设计的层级和网线名,图形化界面便于找到
需要捕获的信号。
第二种方法,对代码的改动量大一些,同时需要熟悉相关IP的设置,优点是,可以控制
ICON,并调用VIO。
与之类似,Vivado也有着两种方法进行设置。
1.在综合后的网表中寻找相关信号,右键点开菜单,然后设置mark debug
2.添加ILA,VIO的IP Core

第一种方法与chipscope的第一种方法极为类似:
1.都需要综合后才能设置;
2.都需要保留一定的设计层级或者网线名来便于寻找信号;
3.并非所有信号都可以被捕获,不能捕获的信号,chipscope中是显示为灰色,vivado
中是没有mark debug的选项在右键菜单中;
第二种方法就更为类似了,vivado可以兼容ISE的IP,所以可以直接调用chipscope的相
关IP,调试时也只是用Chipscope,另外可以使用Vivado自己的ILA IP,来进行设计,
但最大的问题是Vivado不提供ICON的IP以供选择,进一步埋没了ICON的地位。
另外,早起的Vivado IP Catalog提供Chipscope的ICON、ILA和VIO IP Core可以选择,目前已经取消了这些IP,只支持Vivado自己的ILA/VIO IP Core。
这里提供一个非常简单的设计代码,用于Vivado Logic Analyzer的研究。

Ⅵ 如何用vivado将ucf转成xdc

很高兴告诉你!
自从去年10月Xilinx发布ISE147之后,ISE套件便暂时没有了更新计划,相当于进入了软件生命中的“中年”;而当初在2012x版本还作为ISE套件中的一个组件的Vivado,此时已经如早上8、9点钟的太阳一样冉冉升起:因为随着FPGA/SOC制造工艺、硬件单规模和设计方法的不断改进,传统的基于ISE的设计方法已经逐渐不能满足我们的要求了。所以针对新的Artix-7/Kintex-7/Virtex-7芯片,Xilinx都建议我们使用全新设计的Vivado套件来进行开发(使用Spartan-6的筒子可以在新设计中考虑向Artix-7过渡了)。此外,因为ISE套件已经没有升级计划表,所以对新的作系统也无法支持了,例如在Win8/81上面,ISE147几乎无法完美运行,而从Vivado20141版本就开始全面支持了。
直观的来看,我理解的Vivado套件,相当于把ISE、ISim、XPS、PlanAhead、ChipScope和iMPACT等多个独立的套件集合在一个Vivado设计环境中,在这个集合的设计流程下,不同的设计阶段我们采用不同的工具来完成,此时Vivado可以自动变化菜单、工具栏,可以显着提高效率:因为不需要在多个软件间来回切换、调用,白白浪大量的时间。基于Vivado IP集成器(IPI),则把我们对硬件的配置更好地集成到我们的设计中,既极大地提高了对IP的使用和管理,也帮助我们减小了软件和硬件(例如ZYNQ器件的PS)之间的隔阂。Vivado HLS则可以把现有的C代码,在一些特定的规范下直接转换为可综合的逻辑,这也将极大地提高我们实现和移植现有算法的速度。
因为Vivado套件较为复杂,所以先用一个对比测试,来检验一下它们之间的性能差别。采用的测试环境是:

作系统:win7 sp1x64
CPU:I7-4770k,开启超线程,全部超频至43GHz
ISE: 147
Vivado:20141
使用的芯片:ZYNQ系列中的xc7z020-clg400-2(设计全部在PL中实现)
待测试程序:一个用来做实时仿真的模型(算下来有140424行Verilog代码)。为了减小硬盘的延迟影响,作系统和软件都安装在SSD上面,而把工程文件放在RAMdisk上面(因为综合、实现的过程都需要大量的小文件读取作)。
运行的测试:输入正确的工程,但是清理所有工程文件,这样就可以从0开始完成所有的综合、翻译、映射、布局布线和升级bit流文件的所有作;使用的策略则全部用默认策略。

首先,在ISE上运行,测试开始时间是7:33:10,生成bit文件的时间是7:37:01,共花了231秒。
然后,在Vivado上运行。为了方便测试,在Vivado套件里直接导入ISE的工程,源文件都可以正常导入,但是约束文件需要重新配置,因为ISE使用的ucf格式,而Vivado则升级为更先进的xdc格式,需要全部重写约束文件。不过这也不是特别困难的事情,例如管脚约束的转换就比较容易:
例如,ucf为:
NET "gateway_out1[0]" LOC = Y12;
NET "gateway_out1[0]" IOSTANDARD = LVCMOS18;
xdc则为:
set_property PACKAGE_PIN Y12 [get_ports {gateway_out1[0]}]
set_property IOSTANDARD LVCMOS18 [get_ports {gateway_out1[0]}]
为了快速转换,用查找/替换可以较快的完成其中的一部分转换。
然后在Vivado中点击reset runs,如图1所示,这样会清除所有潜在的已经生成的结果(清除综合的结果时可以选择自动清除实现的结果)。

图1 reset runs
为了分发挥Vivado套件的潜力,在tcl console里输入下面的脚本:
set_param generalmaxThreads 8
这样就可以分发挥最大的CPU潜力了(例如DRC检查可以使用全部的线程进行并行作)。然后运行产生比特流的作,开始时间是8:15:20,生成bit文件的时间是8:17:12,共花了112秒。
对比ISE的231秒,可以看出Vivado使用的时间只有ISE的485%。俗话说,“时间就是金”,“效率就是生命”,Vivado只用了不到ISE一半的时间就完成了这个复杂工程的全部实现过程,数据非常有说服力。当然Vivado使用的内存貌似比ISE多了几百MB,但是对于现在配置中等的机器都可以达到8GB内存的情况下,这点内存的差距还是可以忽略的。(好马配好鞍,电脑的这点投资和高端的芯片带来的性能提升和time-to-market减小相

Ⅶ 官方例程给了四个文件两个tcl文件,一个xdc文件,一个v文件,能在vivado下还原出整个工程吗怎么做呢

在这之前,你先得点开那个tcl文件,看是哪个版本的vivado,因为不同版本的vivado用的ip核可能不同,所以先得vivado版本一致;然后进vivado,在tcl console下,输入pwd,查看当前路径,然后将路径用cd指令指到你所在的文件夹下,如cd e:/vivado_workspace,然后再pwd查看下,如果路径对了, 最后vivado界面下tools下run tcl script,路径指到这个system_project.tcl。

Ⅷ 添加完xdc文件后生成顶层文件但是io ports中没有io口,请问这是怎么回事 管脚配置是对的。

波特率为9600

工程的网盘下载链接:https://pan..com/s/1ID426Zd85LgtAzhQMZpzNA

密码:6irg

Step1新建工程,调用一个zynq核并配置

配置选中这个SD卡,工程做完后会从SD卡启动

将这个SDIO设置为50M

这里选择一个DDR的型号(不同的开发板有所不同),点击OK完成配置

配置完成后的zynq核(这个看起来和配置之前一样)

Step2调用axi_uart核并设置波特率

点击工具栏的AddIP按钮在弹出的搜索框中输入axi_uart,然后选择这个AXIUartlite核双击添加进来

双击这个AXIUartlite核,这里的BaudRate可以选择不同的波特率,我这里选择这个默认的9600(这个波特率可以

根据自己的需求选择),其它的选项都保持默认,点击OK完成配置

Step3axi_uart进行自动连线将IP核和zynq核连接起来

点击这个RunBlockAutomation引出DDR和PS的管脚

点击OK

如下图所示

点击这个RunConnectionAutomation将所有的模块连接起来

在弹出的对话框中勾选全部,点击OK

连接成功后如下图所示

Step4生成综合文件和生成顶层文件

综合

生成顶层文件

Step5新建xdc文件并设置管脚

set_propertyPACKAGE_PINT11[get_portsuart_rtl_rxd]

set_propertyPACKAGE_PINT10[get_portsuart_rtl_txd]

set_propertyIOSTANDARDLVCMOS33[get_portsuart_rtl_rxd]

set_propertyIOSTANDARDLVCMOS33[get_portsuart_rtl_txd]

Step6生成bit文件,导出硬件配置,打开SDK

点击GenerateBitstream生成bit文件

File->Export->ExportHardware导出硬件配置

勾选,点击OK

打开SDK

Step7新建一个fsbl

File-->ApplicationProject

点击Next

点击Finish

Step8新建一个axi_uart_test工程

File-->ApplicationProject

点击Next

选择hello_world模板,点击Finish

然后将这个主程序复制到这个新建hello_world模板里

/******************************************************************************

*

*Copyright(C)2002-2015Xilinx,Inc.Allrightsreserved.

*

*Permissionisherebygranted,freeofcharge,toanypersonobtaininga

*(the"Software"),todeal

*,

*touse,,modify,merge,publish,distribute,sublicense,and/orsell

*copiesoftheSoftware,

*furnishedtodoso,:

*

*

*.

*

*:

*(a)runningonaXilinxdevice,or

*(b).

*

*THESOFTWAREISPROVIDED"ASIS",WITHOUTWARRANTYOFANYKIND,EXPRESSOR

*IMPLIED,,

*.INNOEVENTSHALL

*XILINXBELIABLEFORANYCLAIM,DAMAGESOROTHERLIABILITY,

*WHETHERINANACTIONOFCONTRACT,TORTOROTHERWISE,ARISINGFROM,OUTOF

*

*SOFTWARE.

*

*Exceptascontainedinthisnotice,

*,useorotherdealingsin

*.

*

******************************************************************************/

/*****************************************************************************/

/**

*

*@filexuartlite_low_level_example.c

*

*-leveldriverfunctions

*andmacrosoftheUartLitedriver(XUartLite).

*

*@note

*

*

*transmittedwillbereceived.

*

*MODIFICATIONHISTORY:

*<pre>

*VerWhoDate Changes

*--------------------------------------------------------------------------

*1.00brpm04/25/02Firstrelease

*1.00bsv06/13/

*2.00aktn10/20/

* forcodingguidelines.

*3.2ms01/23/17Addedxil_

*ensurethat"Successfullyran"and"Failed"strings

*areavailableinallexamples.Thisisafixfor

*CR-965028.

*</pre>

******************************************************************************/

/*****************************IncludeFiles*********************************/

#include"xparameters.h"

#include"xstatus.h"

#include"xuartlite_l.h"

#include"xil_printf.h"

/**************************ConstantDefinitions*****************************/

/*

*

*xparameters.hfile.

*.

*/

#defineUARTLITE_BASEADDR XPAR_UARTLITE_0_BASEADDR

/*

*

*andreceivedwiththeUartLite,

*.

*/

#defineTEST_BUFFER_SIZEsizeof(uart_data)

/****************************TypeDefinitions*******************************/

/*****************Macros(InlineFunctions)Definitions*********************/

/**************************FunctionPrototypes******************************/

intUartLiteLowLevelExample(u32UartliteBaseAddress);

/**************************data******************************/

structsensor_register{

u8value;

};

staticconststructsensor_registeruart_data[]={

{0x01},

{0x02},

{0x03},

{0x04},

{0x05},

{0x06},

{0x07},

{0x08},

{0x09},

{0x10},

{0x11},

{0x12},

{0x13},

{0x14},

{0x15},

{0x16},

{0x17},

};

/*****************************************************************************/

/**************************VariableDefinitions*****************************/

/*

*

*withtheUartLite.

*/

u8SendBuffer[sizeof(uart_data)];/*BufferforTransmittingData*/

u8RecvBuffer[sizeof(uart_data)];/*BufferforReceivingData*/

/*****************************************************************************/

/**

*

*Mainfunctiontocalltheexample.

*

*@param None.

*

*@return XST_SUCCESSifsuccessful,XST_FAILUREifunsuccessful.

*

*@note None.

*

******************************************************************************/

intmain(void)

{

intStatus;

/*

*RuntheUartLiteLowlevelexample,specifytheBaseAddressthatis

*generatedinxparameters.h.

*/

Status=UartLiteLowLevelExample(UARTLITE_BASEADDR);

if(Status!=XST_SUCCESS){

xil_printf("UartlitelowlevelExampleFailed ");

returnXST_FAILURE;

}

xil_printf(" ");

returnXST_SUCCESS;

}

/*****************************************************************************/

/**

*

*-level

*drivermacrosandfunctions.

*thedatathroughtheUartLite.

*.

*

*@param

* andistheXPAR_<UARTLITE_instance>_BASEADDRvaluefrom

* xparameters.h.

*

*@return XST_SUCCESSifsuccessful,XST_FAILUREifunsuccessful.

*

*@note None.

*

******************************************************************************/

intUartLiteLowLevelExample(u32UartliteBaseAddress)

{

intIndex;

/*

*

*thereceivebufferbytestozero.

*/

for(Index=0;Index<TEST_BUFFER_SIZE;Index++){

SendBuffer[Index]=uart_data[Index].value;

RecvBuffer[Index]=0;

}

/*

*Sendtheentiretransmitbuffer.

*/

for(Index=0;Index<TEST_BUFFER_SIZE;Index++){

XUartLite_SendByte(UartliteBaseAddress,SendBuffer[Index]);

}

/*

*Receivetheentirebuffer'sworth.NotethattheRecvBytefunction

*blockswaitingforacharacter.

*/

for(Index=0;Index<TEST_BUFFER_SIZE;Index++){

RecvBuffer[Index]=XUartLite_RecvByte(UartliteBaseAddress);

}

/*

*

*datawascorrectlyreceived.

*/

for(Index=0;Index<TEST_BUFFER_SIZE;Index++){

if(SendBuffer[Index]!=RecvBuffer[Index]){

returnXST_FAILURE;

}

}

returnXST_SUCCESS;

}

复制完成后如下图所示

这里程序做一些基本的讲解:

这里是uart发送数据部分,可以填充不同的数据

/**************************data******************************/

structsensor_register{

u8value;

};

staticconststructsensor_registeruart_data[]={

{0x01},

{0x02},

{0x03},

{0x04},

{0x05},

{0x06},

{0x07},

{0x08},

{0x09},

{0x10},

{0x11},

{0x12},

{0x13},

{0x14},

{0x15},

{0x16},

{0x17},

};

下面这个接收和发送Buffer里都有这个sizeof(uart_data),这个函数主要计算这个定义的数组里放了多少个数据

(这样就不用每次加数据要改这个发送和接收Buffer的大小了)

u8SendBuffer[sizeof(uart_data)];/*BufferforTransmittingData*/

u8RecvBuffer[sizeof(uart_data)];/*BufferforReceivingData*/

这里对发送Buffer和接收Buffer进行填充

for(Index=0;Index<TEST_BUFFER_SIZE;Index++){

SendBuffer[Index]=uart_data[Index].value;

RecvBuffer[Index]=0;

}

这个是发送,发送Buffer里的数据

/*

*Sendtheentiretransmitbuffer.

*/

for(Index=0;Index<TEST_BUFFER_SIZE;Index++){

XUartLite_SendByte(UartliteBaseAddress,SendBuffer[Index]);

}

这个是接收外面发送进来的数据

/*

*Receivetheentirebuffer'sworth.NotethattheRecvBytefunction

*blockswaitingforacharacter.

*/

for(Index=0;Index<TEST_BUFFER_SIZE;Index++){

RecvBuffer[Index]=XUartLite_RecvByte(UartliteBaseAddress);

}

这里对数据进行校验看发送和接收的是不是一样,这个一般可以用rx和tx回环来进行验证

/*

*

*datawascorrectlyreceived.

*/

for(Index=0;Index<TEST_BUFFER_SIZE;Index++){

if(SendBuffer[Index]!=RecvBuffer[Index]){

returnXST_FAILURE;

}

}

Step9生成一个BOOT.bin文件放到SD卡里运行

右击工程选择CreateBootImage

点击CreateImage生成BOOT.bin文件

将这个BOOT.bin文件拷贝到SD卡插到开发板上,然后将这个rx和tx端连接一个带有串口转换芯片的uart线,这样就可以

从串口调试助手打印uart发送的数据(因分配的管脚是fpga管脚是CMOS电平,电脑是TTL电平所以要用一个带有串口

转换芯片的uart线就可以使用了)

上电后串口打印的输出数据

将数据区域填充不同的数据

/**************************data******************************/

structsensor_register{

u8value;

};

staticconststructsensor_registeruart_data[]={

{0x01},

{0x02},

{0x03},

{0x04},

{0x05},

{0x06},

{0x07},

{0x08},

{0x09},

{0x10},

};

此时的串口打印的输出数据

---------------------

Ⅸ 功能仿真 没有xdc文件为什么需要这么久 vivado

使用vivado isim仿真的方法和过程如下:
1) 测试平台建立;
a) 在工程管理区点击鼠标右键,弹出菜单选择New Source,弹出界面; b) 输入文件名,选择Verilog Test Fixture,打钩add to project,单击NEXT;
c) 选择要仿真的文件,点击NEXT;
d) 点击“FINISH”,就生成一个Verilog测试模块。
ISE能自动生成测试平台的完整构架,包括所需信号、端口声明以及模块调用的实现。所需要完成的工作就是initial….end模块中的“//Add stimulus here”后面添加测试向量生成代码。
这里给出示例测试代码,将其添加于//Add stimulus here处
#100;
SW = 7;
#100;
SW = 11;
#100;
SW = 13;
#100;
SW = 14;

2) 测试平台建立后,在工程管理区将状态设置为“Simulation”;选择要仿真的文件名,
过程管理区就会显示“Isim simlator”;
3) 下拉“Isim simlator”,选择“Simulate Behavioral Model”,单击鼠标右键,现在“Process Properties”可修改仿真远行时间等。
4) 修改后,直接双击“Isim simlator”中的“Simulate Behavioral Model”进行仿真。
检查仿真结果是否达到预期设计目标。

Vivado设计套件,是FPGA厂商赛灵思公司2012年发布的集成设计环境。包括高度集成的设计环境和新一代从系统到IC级的工具,这些均建立在共享的可扩展数据模型和通用调试环境基础上。集成的设计环境——Vivado设计套件包括高度集成的设计环境和新一代从系统到IC级的工具,这些均建立在共享的可扩展数据模型和通用调试环境基础上。

Ⅹ basys3.xdc找不到

解决方法:
在这个窗口中可以添加约束文件(.xdc),在这个样例中仿照上一步找到解压文件夹中‘Basys3_sw_Demo.xdc’文件添加即可。