Diamond開發經驗(1)

在這里插入圖片描述

前言: 學習Lattice的芯片開發的過程中,很多實際開發過程中遇到的問題是沒辦法繞過的,雖然我今天被繞了一天(此句多余,單純記錄美好心情哈哈哈哈)將這些解決方法梳理成文章供大家參考,十個問題組成一篇文章。

文章目錄

  • 1.兩個JTAG如何同時在線調試?
  • 2. 添加設備列表中沒有的flash型號?
  • 3. Reveal的信號不會更新?
  • 4. Spreadsheet引腳顯示unconnected
  • 5.Lattice文檔說明
  • 6.傳送門

1.兩個JTAG如何同時在線調試?

在programmer界面 點擊Detect Cable會顯示兩個板子通過兩個USB Port連接到了電腦上。在兩個板子調試時,打開兩個Diamond,可以先后連接JTAG以便確認FTUSB-0對應的板子是哪一個,后連接的則對應FTUSB-1。在兩個Diamond中分別選擇不同的Port下載文件即可。
在這里插入圖片描述
而Reveal文件需要在兩個bit文件燒寫完成之后依次點擊使用。需要說明,如果一個Diamond的reveal正在等待觸發信號,而另外一個開始燒寫bit文件,通常都會出錯。在各自燒寫完畢后,打開reveal文件,可以看到右上角有Cable Connection Manager按鈕,單機此按鈕,在彈出的對話框中單機detect按鈕,選擇該工程對應的USB Port點擊OK即可。
在這里插入圖片描述

2. 添加設備列表中沒有的flash型號?

在Programmer界面,選擇Edit–>Add Device在彈出的對話框中選擇Add,然后在新彈出的對話框中,添加板貼Flash的參數依次包括設備名稱、封裝、廠商、容量、設備ID等內容,這些內容在Flash手冊中都會標寫。這里添加后,在固化操作時flash列表中就有新添加的這一項了。
在這里插入圖片描述

3. Reveal的信號不會更新?

當修改了源文件之后,有時會發現想把新寫的信號添加在Reveal Analyzer中監控,但是會發現在源文件中刪除的信號還在,而新加的信號并沒有更新。如果沒有刪除原來的信號,工程可以照常編譯,執行綜合—place—bitstream file等過程,Reveal Analyzer依然不更新。這時需要打開Reveal Analyzer的界面,然后找一個IP核重新生成一下即可。這可能是軟件的bug,anyway,這么做是可以解決問題。

4. Spreadsheet引腳顯示unconnected

明明在Top文件中添加了輸入或者輸出管腳,并且工程也已經生成了bit文件,但在Spreadsheet View中依然顯示未鏈接,這通常是和這幾個引腳相關的邏輯有問題。用第一篇文章的led demo舉例子如下:當代碼寫成如下

module LED_demo
(
input clk_i, //輸入系統時鐘
input rst_n, //輸入復位信號
output led1, //輸出led1
output led2  //輸出led2,與led1取反
);
parameter CLK_DIV_PERIOD=125_000_000; 
reg clk_div=0;
assign led1=clk_div; 
assign led2=~clk_div; 
reg[31:0] led_cnt=0; //分頻用的計數器
always@(posedge clk_i or negedge rst_n)beginif(!rst_n)beginled_cnt<=0;end else  if(led_cnt==(CLK_DIV_PERIOD-1)) beginled_cnt<=0;end else beginled_cnt<=led_cnt+1'b1;end 
endalways@(posedge clk_i or negedge rst_n)beginif(!rst_n)beginclk_div<=0;end else if(led_cnt<(CLK_DIV_PERIOD>>1)) begin     clk_div<=0;end else beginclk_div<=1;end
end
endmodule

這是一段沒有任何問題的代碼,綜合前的電路結構圖如下所示:
在這里插入圖片描述
如果我把代碼中 reg[31:0] led_cnt=0; 修改為 reg[23:0] led_cnt=0; 這時SpreadSheet View中會顯示引腳led1、led2為Unconnected,此時綜合前的電路結構圖如下所示,由于led_cnt的位寬小于常量125_000_000所以clk_div恒為0,綜合工具把這里的代碼直接優化成如下圖所示的電路結構。也就是這個隱蔽的問題造成了顯示unconnected的情況。
在這里插入圖片描述

5.Lattice文檔說明

Lattice的發展過程中更新迭代了很多產品,就目前而言,一個IP核可能有三份文檔,應用在不同的平臺。以tri speed ethernet mac ip為例,他有三個文檔,不同的文檔適用不同的產品類型,大致是遠古時代的ispLever開發的ORCA系列,還有latticeECP系列,以及新一代的其他器件。開發IP的時候需要找對應的文檔開發,有些區別不大,但有的甚至信號名稱都不一樣。

  • Tri-Speed Ethernet IP IP Version: v2.0.0
    在這里插入圖片描述
  • 10/100 and 1Gig Ethernet Media Access Controller
    在這里插入圖片描述
  • Tri-Speed Ethernet MAC IP User Guide
    在這里插入圖片描述

6.傳送門

  • 我的主頁
  • Lattice進階之路匯總導航
END

📡文章原創,首發于CSDN論壇。
📡歡迎點贊??收藏??打賞💵💵!
📡歡迎評論區或私信指出錯誤💉,提出寶貴意見或疑問😱。

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

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

相關文章

神經網絡訓練過程詳解

神經網絡訓練過程詳解 神經網絡訓練過程是一個動態的、迭代的學習過程&#xff0c;接下來基于一段代碼展示模型是如何逐步學習數據規律的。 神經網絡擬合二次函數&#xff1a;代碼詳解 下面將詳細解釋這段代碼&#xff0c;它使用神經網絡擬合一個帶有噪聲的二次函數 y x 2x …

LeetCode100-560和為K的子數組

本文基于各個大佬的文章上點關注下點贊&#xff0c;明天一定更燦爛&#xff01;前言Python基礎好像會了又好像沒會&#xff0c;所有我直接開始刷leetcode一邊抄樣例代碼一邊學習吧。本系列文章用來記錄學習中的思考&#xff0c;寫給自己看的&#xff0c;也歡迎大家在評論區指導…

【PZ-ZU47DR-KFB】璞致FPGA ZYNQ UltraScalePlus RFSOC QSPI Flash 固化常見問題說明

1 Flash 固化Flash 固化需要先生成 BOOT.bin 文件&#xff0c;這邊以裸機的串口工程進行講解如何生成 BOOT.bin 文件及 Flash 固化操作。有讀者會遇到&#xff0c;只使用 PL 端的情況&#xff0c;也需要進行 Flash 固化。我們需要添加 PS 端最小配置&#xff08;包含 Flash 配置…

數據結構:查找表

一、數據結構的概念數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。它不僅僅是存儲數據的方式&#xff0c;更強調數據之間的邏輯關系和操作方法。數據結構主要從以下幾個角度來理解&#xff1a;1. 數據之間的關系邏輯結構&#xff1a;集合結構&#xff1a;元素之…

自建知識庫,向量數據庫 (十)之 文本向量化——仙盟創夢IDE

自建文章向量化技術&#xff1a;AI 浪潮下初學者的進階指南 在人工智能&#xff08;AI&#xff09;蓬勃發展的浪潮中&#xff0c;向量化作為將文本數據轉化為數值向量表示的關鍵技術&#xff0c;成為理解和處理文本的基石。本文將結合給定的代碼示例&#xff0c;深入探討自建文…

數據結構 -- 順序表的特點、操作函數

線性表順序存儲的優缺點優點無需為表中的邏輯關系增加額外的存儲空間&#xff0c;利用連續的內存單元存儲數據&#xff0c;存儲密度高。支持 隨機訪問&#xff0c;通過下標可在 O(1) 時間復雜度內定位元素&#xff08;如數組按索引取值&#xff09;&#xff0c;查詢效率穩定。缺…

反向代理實現服務器聯網

下載腳本&#xff1a;https://gitee.com/995770513/ssh-reverse-socket然后解壓到 D:\Download在本機運行 cd D:\Download\ssh-reverse-socket-master\ssh-reverse-socket-master python socket5_proxy.py --ssh_cmd "xaserver10.150.10.51 -p 22" --socket5_port 78…

C語言關于函數傳參和返回值的一些想法2(參數可修改的特殊情況)

我最近寫了一篇文章名為“C語言關于函數傳參和返回值的一些想法”&#xff08;C語言關于函數傳參和返回值的一些想法-CSDN博客&#xff09;&#xff0c;里面提到了一種觀點就是傳參的參數在函數體內部是只讀的&#xff0c;不能寫它&#xff0c;因為如果寫了&#xff0c;也就是污…

前端AI對話功能實現攻略

一、對話內容渲染 在前端頁面的 AI 對話場景中&#xff0c;對話內容的渲染效果直接影響用戶的閱讀體驗和交互效率。合理選擇對話格式、優化流式對話呈現、嵌入自定義內容以及實現語音播報等功能&#xff0c;是提升整體體驗的關鍵。 對話格式選擇 MarkDown 作為一種輕量級標記語…

深入理解Redis持久化:讓你的數據永不丟失

1 Redis持久化概述 1.1 什么是Redis持久化 Redis作為一個高性能的內存數據庫,默認情況下數據存儲在內存中,這意味著一旦服務器重啟或發生故障,內存中的數據將會丟失。為了保證數據的持久性和可靠性,Redis提供了持久化機制,將內存中的數據保存到磁盤中。 持久化是Redis實…

IC驗證 AHB-RAM 項目(二)——接口與事務代碼的編寫

目錄準備工作接口相關代碼編寫事務相關代碼編寫準備工作 DVT&#xff08;Design and Verification Tools&#xff09;是一款專門為 IC 驗證打造的 IDE 插件&#xff0c;可以理解為智能的 Verilog/System Verilog 編輯器&#xff0c;在 VS Code、Eclipse 軟件中使用。 接口相關…

基于Spring Boot的智能民宿預訂與游玩系統設計與實現 民宿管理系統 民宿預訂系統 民宿訂房系統

&#x1f525;作者&#xff1a;it畢設實戰小研&#x1f525; &#x1f496;簡介&#xff1a;java、微信小程序、安卓&#xff1b;定制開發&#xff0c;遠程調試 代碼講解&#xff0c;文檔指導&#xff0c;ppt制作&#x1f496; 精彩專欄推薦訂閱&#xff1a;在下方專欄&#x1…

大模型的底層運算線性代數

深度學習的本質是用數學語言描述并處理真實世界中的信息&#xff0c;而線性代數正是這門語言的基石。它不僅提供了高效的數值計算工具&#xff0c;更在根本上定義了如何以可計算、可組合、可度量的方式表示和變換數據。 1 如何描述世界&#x1f4ca; 真實世界的數據&#xff08…

Rust 中 i32 與 *i32 的深度解析

Rust 中 &i32 與 *i32 的深度解析 在 Rust 中&#xff0c;&i32 和 *i32 是兩種完全不同的指針類型&#xff0c;它們在安全性、所有權和使用方式上有本質區別。以下是詳細對比&#xff1a; 核心區別概覽 #mermaid-svg-rCa8lLmHB7MK9P6K {font-family:"trebuchet ms…

【PyTorch項目實戰】OpenNMT本地機器翻譯框架 —— 支持本地部署和自定義訓練

文章目錄一、OpenNMT&#xff08;Neural Machine Translation&#xff0c;NMT&#xff09;1. 概述2. 核心特性3. 系統架構4. 與其他翻譯工具的區別二、基于 OpenNMT-py 的機器翻譯框架1. 環境配置&#xff08;以OpenNMT-py版本為例&#xff09;&#xff08;1&#xff09;pip安裝…

基于prompt的生物信息學:多組學分析的新界面

以前總以為綜述/評論是假大空&#xff0c;最近在朋友的影響下才發現&#xff0c;大佬的綜述/評論內容的確很值得一讀&#xff0c;也值得分享的。比如這篇講我比較感興趣的AI輔助生信分析的&#xff0c;相信大家都是已經實踐中用上了&#xff0c;看看大佬的評論&#xff0c;拓寬…

Nacos-8--分析一下nacos中的AP和CP模式

Nacos支持兩種模式來滿足不同場景下的需求&#xff1a;AP模式&#xff08;強調可用性&#xff09;和CP模式&#xff08;強調一致性&#xff09;。 這兩種模式的選擇主要基于CAP理論&#xff0c;該理論指出在一個分布式系統中&#xff0c;無法同時保證一致性&#xff08;Consist…

水閘安全監測的主要核心內容

水閘安全監測是指通過一系列技術手段和管理措施&#xff0c;對水閘的結構狀態、運行性能及環境條件進行實時或定期的觀測與評估&#xff0c;以確保水閘在設計壽命期內的安全性和可靠性。其核心目標是及時發現潛在的安全隱患&#xff0c;防止事故發生&#xff0c;保障水利工程的…

嵌入式系統學習Day19(數據結構)

數據結構的概念&#xff1a; 相互之間存在一種或多種特定關系的數據元素的集合。數據之間關系&#xff1a;邏輯關系&#xff1a;集合&#xff0c;線性&#xff08;1對1&#xff0c;中間位置的值有且僅有一個前驅&#xff0c;一個后繼&#xff09;&#xff0c;樹&#xff08;1對…

Pandas中數據清理、連接數據以及合并多個數據集的方法

一、簡介1.數據清理的重要性&#xff1a;在進行數據分析前&#xff0c;需進行數據清理&#xff0c;使每個觀測值成一行、每個變量成一列、每種觀測單元構成一張表格。2.數據組合的必要性&#xff1a;數據整理好后&#xff0c;可能需要將多張表格組合才能進行某些分析&#xff0…