安路FPGA開發入門:軟件安裝與點燈與仿真(TangDynasty ModelSim)

文章目錄

  • 前言
  • 軟件安裝
    • 開發軟件
    • 仿真軟件
  • 點燈測試
    • 代碼編寫與編譯
    • 引腳分配
    • 固件下載
  • 仿真測試
    • ModelSim添加仿真庫
    • TangDynasty仿真設置
    • 進行仿真
  • 后記

前言

在這里插入圖片描述
最近因為工作需要用安路的FPGA,這里對安路FPGA開發相關流程做個記錄。作為測試只需要一個核心板(我這里用的 EF2L45LG144B )和下載器( AL-LINK ,我這里是核心板上板載的)。

安路的所有軟件和資料都可以在官網上下載到,不過因為權限問題,有些內容可能需要發郵箱給安路申請提升權限:
https://www.anlogic.com/

軟件安裝

開發軟件

安路FPGA開發軟件是 TangDynasty ,這里使用下面版本,另外還需要下載 license
在這里插入圖片描述
之前碰到過筆記本離電性能平衡模式下怎么樣裝都裝不成功,插電高性能下安裝就一點都沒問題,不知道是不是安裝程序哪里有超時機制處理不當的BUG什么的。

軟件安裝后需要手動把下載的 license 放到安裝目錄對應位置下(這個許可是過段時間就過期,需要重新下載替換,可以用文本方式查看到有效期限):
在這里插入圖片描述

軟件安裝后安裝目錄對應位置下有下載器的驅動,下載器連接電腦后可能需要手動更新驅動才會正常:
在這里插入圖片描述

軟件安裝后可以打開軟件找到軟件手冊:
在這里插入圖片描述
這個手冊基本上用到的東西都有介紹了,熟悉FPGA開發的人直接看這個就能用起來了。

仿真軟件

ModelSim-英特爾? FPGAs 標準版軟件版本:
https://www.intel.cn/content/www/cn/zh/software-kit/750666/modelsim-intel-fpgas-standard-edition-software-version-20-1-1.html
在這里插入圖片描述

點燈測試

這里直接就點燈進行測試了。

代碼編寫與編譯

首先新建文件:
在這里插入圖片描述

編寫代碼如下:

module blink(clk, led);input clk;output reg led = 0;reg [31:0] counter = 0;always@(posedge clk)if (counter == 5_000_000)counter <= 0;elsecounter <= counter + 1;always@(posedge clk)if (counter == 5_000_000)led <= !led;endmodule

我的板子上有個 10MHz 的時鐘輸入到芯片,我拿它設置了個500ms的計數器,每次計數溢出時翻轉一次外接LED的端口電平,實現LED閃爍效果。

運行編譯:
在這里插入圖片描述

引腳分配

沒有報錯的話分配下IO口:
在這里插入圖片描述

另外未用到的IO口狀態可以在下面地方統一設置(默認通常是上拉輸入的):
在這里插入圖片描述

固件下載

設置IO口后重新運行編譯,成功后可以下載比特流( .bit )文件到芯片中看到LED閃爍效果:
在這里插入圖片描述
下載時選擇 JTAG ,掉電后就會失效;選擇 PROGRAM FLASH 掉電后也不會失效。

這里有點問題,官方說 PROGRAM FLASH 是下載到外部Flash, PROGRAM INTERNAL FLASH 是下載到芯片內置的Flash中,我的芯片按理說是選用后者才對,但我這里后面的選項不可選,并且選擇前面的也可以正常使用。

仿真測試

TangDynasty 使用 ModelSim 仿真可以參考軟件手冊或者也可以參考下面文章:
https://chipdebug.com/forum-post/55252.html

下面步驟中在 ModelSim添加仿真庫 后其實就直接可以在 ModelSim 中進行仿真了,這個可以參考上面資料。這里介紹的是通過 TangDynasty 生成仿真腳本來進行仿真。

ModelSim添加仿真庫

ModelSim添加仿真庫理論上對于源碼和庫目錄大概是沒有硬性要求的,這里參考上面資料的方式進行介紹。

首先在ModelSim目錄中新建存放安路器件源碼和模塊庫的目錄,并從TangDynasty安裝目錄中拷貝源碼到這里:
在這里插入圖片描述

需要注意的是如果在上面目錄中新建和拷貝需要權限的話,下面打開ModelSim需要以管理員方式打開,否則建立文件等會失敗。

啟動 ModelSim ,選擇 File > Change Directory 將路徑轉到 anlogic 文件夾下。然后選擇 File > New > Library 下新建庫:
在這里插入圖片描述

選擇 Compile → Compile 進行編譯:
在這里插入圖片描述

編譯完成后可以看到模塊和相關文件:
在這里插入圖片描述

TangDynasty仿真設置

TangDynasty可以生成ModelSim用的放在腳本,但是需要進行一些設置。

Process > Properties >

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

進行仿真

首先根據實際需求在 Process > Properties 設置模塊庫目錄以及仿真時間和精度:
在這里插入圖片描述

然后準備測試腳本,比如這里用 blink_tb.v ,測試腳本內容如下:

`timescale 1ns/1ns // 仿真時間尺度和精度module blink_tb();reg sig_clk;wire sig_led;blink blink_inst(.clk(sig_clk),.led(sig_led));initial sig_clk = 0;           // 設置初值always #50 sig_clk = ~sig_clk; // 每 50*1ns 翻轉一次sig_clk(即10MHz信號)initial begin      // 開始執行#2_000_000_000; // 延時 2_000_000_000 納秒(即 2000ms 或 2秒鐘)$stop;          // 停止執行endendmodule

TangDynasty中運行到不同的步驟可以執行不同發仿真:

當 HDL2Bit Flow 運行至 Read Design 這一步時,可執行 Behavioral Simulation;
當 HDL2Bit Flow 運行至 Optimize RTL 這一步時,可執行 Post-RTL Simulation;
當 HDL2Bit Flow 運行至 Optimize Gate 這一步時,可執行 Post-Gate Simulation;
當 HDL2Bit Flow 運行至 Optimize Routing 這一步時,可執行 Post-Route Simulation。

例如下面:
在這里插入圖片描述

接著選擇 Tool > Simlation 添加測試腳本:
在這里插入圖片描述

添加后會生成仿真腳本,注意檢查相關內容,如果不對可以在這里直接修改,需要注意的是 -voptargs=+acc 這行:
在這里插入圖片描述

之后就可以在ModelSim中進行仿真了,首先切換目錄:
在這里插入圖片描述

然后輸入命令開始執行仿真:
在這里插入圖片描述

仿真結果如下:
在這里插入圖片描述

后記

TangDynasty 整體使用還是比較簡單的,只有使用ModelSim來仿真稍稍會麻煩些,但也不算特別麻煩。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/72352.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/72352.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/72352.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

千峰React:外部庫引用

flushSync強制刷新 如果不強制刷新是這樣&#xff1a;每次count在下一輪才更新 import { useState, useRef } from react import { flushSync } from react-domfunction App() {const [count, setCount] useState(0)const refuseRef(null)const handleClick () > { setCo…

防火墻旁掛組網雙機熱備負載均衡

一&#xff0c;二層交換網絡&#xff1a; 使用MSTPVRRP組網形式 VLAN 2--->SW3為主,SW4 作為備份 VLAN 3--->SW4為主,SW3 作為備份 MSTP 設計 --->SW3 、 4 、 5 運行 實例 1 &#xff1a; VLAN 2 實例 2 &#xff1a; VLAN 3 SW3 是實例 1 的主根&#xff0c;實…

結合PyMuPDF+pdfplumber,刪除PDF指定文本后面的內容

?? 一、需求場景解析 在日常辦公中,我們經常會遇到這樣的痛點: 合同處理:收到上百份PDF合同,需要找到"簽署頁"之后的內容并刪除報表加工:批量移除財務報表中的敏感數據區域文檔歸檔:快速提取技術文檔的關鍵章節傳統的手動操作方式存在三大致命缺陷: ? 耗時…

二、QT和驅動模塊實現智能家居----2、編譯支持QT的系統

因為我們的Linux內核文件不支持QT系統&#xff08;當然如果你的支持&#xff0c;完全跳過這篇文章&#xff09;&#xff0c;所以我們要從網上下載很多軟件包&#xff0c;這里直接用百問網的軟件包&#xff0c;非常方便。 一&#xff1a;Ubuntu 配置 1 設置交叉編譯工具鏈 以…

el-select的下拉選擇框插入el-checkbox

el-check注意這里要使用model-value綁定數據 <el-selectv-model"selectDevice"multiplecollapse-tags:multiple-limit"5"style"width: 200px"popper-class"select-popover-class" ><el-optionv-for"item in deviceList…

UNION 和 UNION ALL 的區別:深入解析 SQL 中的合并操作

在 SQL 的世界里&#xff0c;當我們需要合并多個查詢結果集時&#xff0c;UNION和UNION ALL是兩個常用的操作符。雖然它們的功能看起來相似&#xff0c;但實際上有著重要的區別&#xff0c;這些區別在不同的應用場景中會對查詢結果和性能產生顯著影響。本文將詳細探討UNION和UN…

5.Linux配置虛擬機

步驟一 步驟二 步驟三 步驟四 finalshell

2024華為OD機試真題-熱點網站統計(C++)-E卷-100分

2024華為OD機試最新E卷題庫-(C卷+D卷+E卷)-(JAVA、Python、C++) 目錄 題目描述 輸入描述 輸出描述 用例1 用例2 考點 題目解析 代碼 c++ 題目描述 企業路由器的統計頁面,有一個功能需要動態統計公司訪問最多的網頁 URL top N。 請設計一個算法,可以高效動態統計 …

SOUI基于Zint生成EAN碼

EAN碼廣泛應用與歐洲的零售業。包括EAN-2、EAN-5、EAN-8和EAN-12碼。分別編碼 2、5、7 或 12 位數字。此外&#xff0c;可以使用 字符將 EAN-2 和 EAN-5 附加符號添加到 EAN-8 和 EAN-13 符號中&#xff0c;就像 UPC 符號一樣。 EAN-8校驗碼計算&#xff1a; 從左往右奇數位的…

QT實現簡約美觀的動畫Checkbox

*最終效果: * 一共三個文件: main.cpp , FancyCheckbox.h , FancyCheckbox.cpp main.cpp #include <QApplication> #include "FancyCheckbox.h" #include <QGridLayout> int main(int argc, char *argv[]) {QApplication a(argc, argv);QWidget* w new…

arm | lrzsz移植記錄

1 我的使用場景 開發板無網絡, 無奈只得用U盤拷貝文件 文件不大, 每次都插拔U盤, 很繁瑣 原來的環境不支持rz等命令 就需要移植這個命令來使用 下載地址 https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz 2 編譯腳本 # 主要內容在這里 configure_for_arm(){mkdir -p $PA…

Hadoop之01:HDFS分布式文件系統

HDFS分布式文件系統 1.目標 理解分布式思想學會使用HDFS的常用命令掌握如何使用java api操作HDFS能獨立描述HDFS三大組件namenode、secondarynamenode、datanode的作用理解并獨立描述HDFS讀寫流程HDFS如何解決大量小文件存儲問題 2. HDFS 2.1 HDFS是什么 HDFS是Hadoop中的一…

矩陣 trick 系列 題解

1.AT_dp_r Walk&#xff08;矩陣圖論&#xff09; 題意 一個有向圖有 n n n 個節點&#xff0c;編號 1 1 1 至 n n n。 給出一個二維數組 A 1... n , 1... n A_{1...n,1...n} A1...n,1...n?&#xff0c;若 A i , j 1 A_{i,j}1 Ai,j?1 說明節點 i i i 到節點 j j j …

使用AoT讓.NetFramework4.7.2程序調用.Net8編寫的庫

1、創建.Net8的庫&#xff0c;雙擊解決方案中的項目&#xff0c;修改如下&#xff0c;啟用AoT&#xff1a; <Project Sdk"Microsoft.NET.Sdk"><PropertyGroup><OutputType>Library</OutputType><PublishAot>true</PublishAot>&…

Goby 漏洞安全通告| Ollama /api/tags 未授權訪問漏洞(CNVD-2025-04094)

漏洞名稱&#xff1a;Ollama /api/tags 未授權訪問漏洞&#xff08;CNVD-2025-04094&#xff09; English Name&#xff1a;Ollama /api/tags Unauthorized Access Vulnerability (CNVD-2025-04094) CVSS core: 6.5 風險等級&#xff1a; 中風險 漏洞描述&#xff1a; O…

端到端自動駕駛——cnn網絡搭建

論文參考&#xff1a;https://arxiv.org/abs/1604.07316 demo 今天主要來看一個如何通過圖像直接到控制的自動駕駛端到端的項目&#xff0c;首先需要配置好我的仿真環境&#xff0c;下載軟件udacity&#xff1a; https://d17h27t6h515a5.cloudfront.net/topher/2016/November…

藍橋杯試題:二分查找

一、問題描述 給定 n 個數形成的一個序列 a&#xff0c;現定義如果一個連續子序列包含序列 a 中所有不同元素&#xff0c;則該連續子序列便為藍橋序列&#xff0c;現在問你&#xff0c;該藍橋序列長度最短為多少&#xff1f; 例如 1 2 2 2 3 2 2 1&#xff0c;包含 3 個不同的…

網絡空間安全(7)攻防環境搭建

一、搭建前的準備 硬件資源&#xff1a;至少需要兩臺計算機&#xff0c;一臺作為攻擊機&#xff0c;用于執行攻擊操作&#xff1b;另一臺作為靶機&#xff0c;作為被攻擊的目標。 軟件資源&#xff1a; 操作系統&#xff1a;如Windows、Linux等&#xff0c;用于安裝在攻擊機和…

DeepSpeek服務器繁忙?這幾種替代方案幫你流暢使用!(附本地部署教程)

作者&#xff1a;后端小肥腸 目錄 1. 前言 2. 解決方案 2.1. 納米AI搜索&#xff08;第三方平臺&#xff09; 2.2. Github&#xff08;第三方平臺&#xff09; 2.3. 硅基流動&#xff08;第三方API&#xff09; 3. 本地部署詳細步驟 3.1. 運行配置需求 3.2. 部署教程 4…

prisma+supabase報錯無法查詢數據

解決方案&#xff0c;在DATABASE_URL后面增加?pgbouncertrue