安卓手機如何打開xdc文件
1. 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的研究。
2. 如何打開vivado的debug窗口
用Vivado進行硬體調試,就是要插入ila核,即「集成邏輯分析儀」,然後將想要引出來觀察的信號連到這個核的probe上。
首先第一步,需要把想要觀測的信號標記出來,即mark_debug,有兩種mark_debug的方法,我用verilog寫了一個簡單的流水燈程序,只有幾行代碼,如下:
mole main(
input clk,
input rst,
output reg [7:0] led
);
(*mark_debug = "true"*)reg [23:0] counter;
always @(posedge clk) begin
if(rst) begin
counter <= 0;
led <= 8'b00000001;
end
else counter <= counter + 1;
if (counter == 24'hffffff)
led <= {led[6:0],led[7]};
end
endmole
例如,要觀察counter信號的波形,那麼在第7行定義reg型信號counter時,前面加上(*mark_debug=「true」*),這樣就把counter信號標記了出來。如果用vhdl語言實現的話,這句話用該這樣寫:
signal counter : std_logic_vector (23 downto 0);
attribute mark_debug: string;
attribute mark_debug of counter : signal is "true";
另外添加xdc約束文件,內容如下:
set_property PACKAGE_PIN Y9 [get_ports clk]
set_property PACKAGE_PIN T18 [get_ports rst]
set_property IOSTANDARD LVCMOS33 [get_ports clk]
set_property IOSTANDARD LVCMOS18 [get_ports rst]
set_property PACKAGE_PIN T22 [get_ports {led[0]}]
set_property PACKAGE_PIN T21 [get_ports {led[1]}]
set_property PACKAGE_PIN U22 [get_ports {led[2]}]
set_property PACKAGE_PIN U21 [get_ports {led[3]}]
set_property PACKAGE_PIN V22 [get_ports {led[4]}]
set_property PACKAGE_PIN W22 [get_ports {led[5]}]
set_property PACKAGE_PIN U19 [get_ports {led[6]}]
set_property PACKAGE_PIN U14 [get_ports {led[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[7]}]
之後run synthesis綜合,之後open synthesized design,在左上角選擇debug layout,在debug窗口中netlist看到counter信號前面有一個綠色的小蜘蛛,表示counter信號被標記出來了。
這其實是一種比較繁瑣的方法,更為方便的方法是,直接綜合工程,在之後打開綜合設計,在netlist中直接選中想要查看的信號,右鍵選擇mark debug,即可將信號標記出來。
但是採用第一種方式的好處是,如果工程比較復雜的話,一些信號可能會被綜合優化掉,加上模塊層層實例化,在netlist中可能找不到要觀測的信號,這時在代碼裡面mark_debug,依舊可以將該信號引出來。
3. 打開XDC格式文件
防盜拷CD.你用NERO刻到盤上試試.
4. 小米4kxdcnbh30.0是什麼系統
是miui v5的穩定版系統,最近版本是v6的穩定版,可以檢查系統更新進行升級,
5. 功能模擬 沒有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級的工具,這些均建立在共享的可擴展數據模型和通用調試環境基礎上。
6. 智能手機便簽文件,後綴名為.pwi,如何在電腦打開
如果需要電腦和手機雲同步的便簽軟體,可以選擇使用敬業簽雲便簽,敬業簽可在安卓手機、蘋果手機、iPad以及Windows電腦上免費安裝便簽程序同步使用。
記事、提醒以及雲同步是敬業簽基礎功能,免費用戶也可以使用,開通付費會員後,還可以安裝Mac端同步使用。
7. 如何在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工程就建立好了。
8. 如何用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減小相
9. 添加完xdc文件後生成頂層文件但是io ports中沒有io口,請問這是怎麼回事 管腳配置是對的。
波特率為9600
工程的網盤下載鏈接:
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},
};
此時的串口列印的輸出數據
---------------------
10. 官方常式給了四個文件兩個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。