ISE_软件基本使用流程(win10 的bug工程约束仿真烧写mcs固化)
文章目錄
- 背景
- 1、前言
- 2、流程
- 1、新建工程
- 2、編寫(xiě)代碼
- 3、時(shí)序約束
- 4、分配管腳
- 1、手動(dòng)分配管腳
- 2、使用ucf文件分配管腳
- 5、配置工程
- 6、下載程序
- 3、win10與ISE的bug解決方案
- 4、固化程序
- 5、ISE搭配Modelsim軟件的使用
- 1、關(guān)聯(lián)modelsim路徑
- 2、添加TB文件
- 3、編譯仿真庫(kù)實(shí)現(xiàn)功能仿真
- 4、門(mén)級(jí)仿真
- 6、ISE無(wú)法編譯XILINX庫(kù)文件的解決辦法
- 6、使用ISE自帶的內(nèi)嵌仿真器ISim
背景
關(guān)于ISE 14.7 是支持所有系列的XILINX器件的,之前一直想入手ISE,作為三大工具之一,也是必須要掌握的。一直耽擱耽擱,歸根結(jié)底,其實(shí)還是自己的學(xué)習(xí)渴望不夠強(qiáng)烈,如果學(xué)習(xí)渴望足夠強(qiáng)烈,時(shí)間總會(huì)擠出來(lái)的,所以,這一點(diǎn)上,我感到深深的自責(zé)和愧疚之感。后悔也沒(méi)啥用了,那也只能現(xiàn)在抓緊抓緊再抓緊吧。。。。(來(lái)自處女座的苦惱)
1、前言
由于vivado的誕生,ISE停留在了ISE 14.7,但是ISE 14.7是支持spartan 6的。
基本的流程如下:
可以看到這個(gè)流程,和我們之前用Alteral的,也是一樣的。
2、流程
1、新建工程
選擇器件,內(nèi)嵌的綜合工具默認(rèn)是XST,仿真器選擇modelsim-SE的verilog仿真
2、編寫(xiě)代碼
然后,我們就可以添加文件了,編寫(xiě)verilog代碼了。
這里補(bǔ)充一點(diǎn),自動(dòng)補(bǔ)全快捷鍵按 ctrl +enter
此處定義一個(gè)1秒鐘變化一次的led小燈
`timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 12:30:05 05/12/2019 // Design Name: // Module Name: ISE_led_top // Project Name: // Target Devices: // Tool versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // // module ISE_LED( input sysclk, input rst, output led);reg [28:0] time_cnt; reg led_reg;always @ (posedge sysclk or negedge rst)beginif(!rst)time_cnt<=0;else if (time_cnt=='d50000000)time_cnt<=0;elsetime_cnt<=time_cnt+1'b1;endalways @ (posedge sysclk or negedge rst)beginif(!rst)led_reg<=0;else if(time_cnt=='d50000000)led_reg<=~led_reg;elseled_reg<=led_reg;end assign led=led_reg; endmodule點(diǎn)擊XST可以進(jìn)行綜合分析,從而判斷代碼是否出錯(cuò)。
有錯(cuò)是正常的,沒(méi)有一個(gè)人敢保證不用編譯器檢查,第一遍寫(xiě)代碼就完全正確。
XST編譯成功后的界面。
3、時(shí)序約束
在上圖中,我們用Creat Timing Contraints來(lái)創(chuàng)建時(shí)序約束。
另外在ISE中,時(shí)序約束文件,被稱(chēng)之為UCF。其實(shí)就是user contraints file的簡(jiǎn)稱(chēng)。
一般來(lái)說(shuō),對(duì)于一些簡(jiǎn)單的工程,我們僅僅需要約束時(shí)鐘就可以了。
這里,我要說(shuō)明一下,ISE對(duì)代碼的檢測(cè)還是比較嚴(yán)格的,如果我輸出端口沒(méi)有被賦值,都會(huì)報(bào)錯(cuò),只要有錯(cuò)誤,那么時(shí)序約束界面就可能不會(huì)給出clock domains這個(gè)選項(xiàng)。
在圖中,第一欄TIMESPEC(Timing Specificaition,時(shí)鐘說(shuō)明)名稱(chēng)為T(mén)S_sysclk,表示創(chuàng)建一個(gè)時(shí)鐘約束標(biāo)識(shí)符“TS_sysclk”;第二欄“Clock net name”(時(shí)鐘管腳名)自動(dòng)設(shè)為“sysclk”,第三欄指定“TIME”(時(shí)鐘周期)為20ns,“initial clockedge”(最初的時(shí)鐘沿)為上升沿,“rising duty cycle”(上升沿的占空比為50%),設(shè)置完后,點(diǎn)擊[ok]即可。
這里要說(shuō)明下,其實(shí)TS_sysclk就是和timequest一樣,只是一個(gè)名字而已,實(shí)際上,重要的是關(guān)聯(lián)的目標(biāo)sysclk。
4、分配管腳
1、手動(dòng)分配管腳
如果打不開(kāi)報(bào)錯(cuò)的話(huà),而且已經(jīng)解決過(guò)了wein10的兼容性問(wèn)題,那么可以清楚工程文件
此時(shí)我們可以看到ucf文件中,已經(jīng)增加了對(duì)管腳的約束。
2、使用ucf文件分配管腳
可以導(dǎo)出來(lái)管腳信息
5、配置工程
在工程中,我們需要將沒(méi)有使用的管腳配置為浮空狀態(tài)。在編譯流程窗口下找到【generate programming file】并右鍵點(diǎn)擊【process properities…】
我們將沒(méi)有使用的管腳配置為浮空狀態(tài)。
6、下載程序
注意,如果你的管腳分配不恰當(dāng),就會(huì)導(dǎo)致實(shí)現(xiàn)implement不通過(guò)
點(diǎn)擊generate programming file就可以對(duì)整個(gè)工程進(jìn)行全編譯。
連接下載器
雙擊boundary scan
點(diǎn)擊initial chain,這個(gè)時(shí)候,軟件會(huì)自動(dòng)識(shí)別。
此時(shí),又會(huì)彈出一個(gè)窗口問(wèn)我們是否要添加一個(gè)額外的PROMs,由于我們進(jìn)行在線(xiàn)下載的,所以我們不需要。也就是說(shuō),我們并沒(méi)有采取固化操作。
點(diǎn)擊OK即可
然后在彈出來(lái)的窗口中點(diǎn)擊yes,選擇生成后的bit文件。
在初始化完畢后,點(diǎn)擊操作中的program即可下載程序
此時(shí)小燈就能開(kāi)始閃爍啦
3、win10與ISE的bug解決方案
https://blog.csdn.net/feq123/article/details/80900389
4、固化程序
前面的2,已經(jīng)把基本流程講解完畢,現(xiàn)在再做一些補(bǔ)充,關(guān)于如何固化程序,這一點(diǎn),從這么一個(gè)背景說(shuō)起,最近兩天想叫外協(xié)寫(xiě)的程序發(fā)過(guò)來(lái),我們自己燒寫(xiě),別人當(dāng)然不會(huì)給源代碼,于是給了我們一個(gè)叫什么m啥的文件,當(dāng)然別人也不會(huì)給bit文件,bit文件貌似不能固化。
由于我們下載的bit文件,所以開(kāi)發(fā)板掉電會(huì)丟失
如果我們想要不丟失,我們就必須利用jtag接口下載MCS文件到FLASH中,就可以實(shí)現(xiàn)程序掉電不丟失。
我們可以在上圖的位置點(diǎn)擊,也可以在iMACT中點(diǎn)擊。
創(chuàng)建PROM文件
選擇要轉(zhuǎn)換的bit文件后,然后選擇no,代表只添加一個(gè)bit文件。
點(diǎn)擊generate,生成mcs文件
生成mcs文件后,返回下載頁(yè)面,雙擊藍(lán)色虛線(xiàn)框的SPI,選擇mcs文件
先把flash給擦除,然后再燒寫(xiě)程序進(jìn)進(jìn)去。
然后雙擊program即可。
總之一句話(huà),就是要先將bit文件轉(zhuǎn)換成mcs文件,然后通過(guò)flash的SPI配置燒寫(xiě)到flash中即可。
5、ISE搭配Modelsim軟件的使用
1、關(guān)聯(lián)modelsim路徑
在ISE中調(diào)用Modelsim,就像alteral一樣,只要我們?cè)O(shè)置好了路徑,我們就可以直接調(diào)用modelsim,至于如何脫離了ISE平臺(tái),采用do文件仿真,在后面有時(shí)間,我會(huì)專(zhuān)門(mén)寫(xiě)一篇針對(duì)這三大工具平臺(tái),獨(dú)立的進(jìn)行仿真。
2、添加TB文件
表示待仿真的文件是ISE_LED,與之關(guān)聯(lián)的文件是ISE_LED.
此時(shí),我們可以看到TB文件已經(jīng)有了不少例化被測(cè)試的模塊了。
現(xiàn)在,我們要做的就是寫(xiě)激勵(lì)就行了。
3、編譯仿真庫(kù)實(shí)現(xiàn)功能仿真
編寫(xiě)完了仿真文件,接著,我們需要編譯仿真庫(kù)。
就可以啟動(dòng)modelsim了,這里指的注意的是:我們修改了verilog程序代碼和仿真文件代碼(前提是不修改端口信號(hào)),我們不需要重新編譯工程,我們只要關(guān)閉modelsim仿真軟件,再一次點(diǎn)擊開(kāi)始仿真即可。如果我么你修改了端口的輸入和輸出,那么這里最好重新全編譯一次,并且我們需要重新生成仿真模板文件進(jìn)行修改。至此,我們就完成了功能仿真。
以25M時(shí)鐘源,可以看到每隔2S鐘,輸出變化一次,符合預(yù)期標(biāo)準(zhǔn)。
補(bǔ)充:其實(shí),我試了下,直接點(diǎn)擊仿真行為仿真即可
上圖是把始終晶振更改為50M后,直接點(diǎn)擊行為仿真。
4、門(mén)級(jí)仿真
至于門(mén)級(jí)仿真就是布線(xiàn)后的仿真,綜合后,進(jìn)行ISE的實(shí)現(xiàn)操作(implement),包括轉(zhuǎn)換、映射、布局布線(xiàn)。在這三個(gè)過(guò)程中每一個(gè)過(guò)程都會(huì)生成一個(gè)仿真模型,由于翻譯和映射不會(huì)產(chǎn)生延時(shí),因此常用布局布線(xiàn)后產(chǎn)生的仿真模型進(jìn)行時(shí)序仿真。
在實(shí)現(xiàn)過(guò)后,點(diǎn)擊【Generate Post Place&Route Simulation Model】開(kāi)始建立時(shí)序布局布線(xiàn)后的仿真模型。
如上圖所示,選擇布線(xiàn)后模型
6、ISE無(wú)法編譯XILINX庫(kù)文件的解決辦法
今天,我在學(xué)習(xí)vivado的時(shí)候,也需要配置modelsim的路徑,于是我打開(kāi)ISE,本來(lái)想查看一下。結(jié)果發(fā)現(xiàn)之前都好好的,編譯XILINX庫(kù),居然報(bào)錯(cuò),通不過(guò)了。明明路徑都已經(jīng)給出了,但是卻編譯不通過(guò)錯(cuò)誤。
其實(shí)我們只需要在執(zhí)行文件后面加一個(gè)\即可,這個(gè)和quartus的modelsim有時(shí)候也出現(xiàn)這種情況是一樣的。
6、使用ISE自帶的內(nèi)嵌仿真器ISim
這里,我為什么要單獨(dú)說(shuō)一下ISim的使用流程,就是因?yàn)镮Sim,這個(gè)東西和VIVADO自帶的仿真器也非常相似,不知道是不是因?yàn)橐粋€(gè)公司開(kāi)發(fā)的,那批人就在源代碼上面改了改的原因。至于quartus的自帶仿真器件的仿真,非常的low,一半我們都不用。所以關(guān)于quartus的自帶仿真就不介紹了。
如上圖所示,將仿真工具選為ISim
可以仿真時(shí)間
下面,我們用后仿真試試看。
這里,我就不給出仿真波形了,因?yàn)槲以嚵?#xff0c;1s仿真時(shí)間太長(zhǎng)了。
至此,ISE基本使用流程講解完畢
總結(jié)
以上是生活随笔為你收集整理的ISE_软件基本使用流程(win10 的bug工程约束仿真烧写mcs固化)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: matlab---spectrogram
- 下一篇: modelsim加入xilinx ISE