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