當前位置:首頁 » 數據倉庫 » 怎麼重新配置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』文件添加即可。