日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ISE_软件基本使用流程(win10 的bug工程约束仿真烧写mcs固化)

發布時間:2025/4/5 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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文件已經有了不少例化被測試的模塊了。
現在,我們要做的就是寫激勵就行了。

`timescale 1ns / 1ns// Company: // Engineer: // // Create Date: 20:02:51 05/12/2019 // Design Name: ISE_LED // Module Name: D:/ISE_FPGA_Project/liruifeng_tem/ISE_learning/ISE_LED/ISE_LED/ISE_LED_tb.v // Project Name: ISE_LED // Target Device: // Tool versions: // Description: // // Verilog Test Fixture created by ISE for module: ISE_LED // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // module ISE_LED_tb;// Inputsreg sysclk;reg rst;// Outputswire led;// Instantiate the Unit Under Test (UUT)ISE_LED uut (.sysclk(sysclk), .rst(rst), .led(led));initial begin// Initialize Inputssysclk = 0;rst = 0;// Wait 100 ns for global reset to finish#100 rst=1;forever begin#20 sysclk=~sysclk;end// Add stimulus hereendendmodule

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固化)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。