原创 DCM、PLL以及DLL等概念及詳情

 FPGA的學習中,經常會看到DCM、DLL、以及PLL等詞語。以前沒有真正使用,總是模棱兩可,馬馬虎虎知道是時鐘相關資源就再也沒深究。但終究不是辦法,因爲雖然解決問題的時候確實很痛苦,但是痛苦之餘盲區總會一天少過一天。相反,對問題避之不

原创 FPGA芯片供電總結

FPGA芯片在正常工作的時候需要系統提供三套供電機制——外部端口供電機制、內部邏輯供電機制和專有電路供電機制。 一、外部端口供電 1、意義 FPGA芯片通過IO資源接收外界相關電平信號或者按要求發送相關電平信號來與外界電路通信,而保證正確

原创 亞穩態專題(亞穩態的概念、亞穩態的產生、亞穩態的後果、以及如何避免亞穩態)

亞穩態是FPGA系統中的一個常見問題,亞穩態的出現輕則導致輸出錯誤,嚴重的甚至會導致系統崩潰。因此對亞穩態的瞭解必不可少,本文在查閱衆多資料的基礎上,對亞穩態的概念、亞穩態的產生原因、以及如何避免亞穩態進行了分析與記錄。 目錄 一、概念

原创 Verilog實現FIFO專題5-異步FIFO設計(異步FIFO工作方式、異步FIFO介紹、異步FIFO介紹)

FIFO根據輸入輸出時鐘是否一致,分爲同步FIFO與異步FIFO。同步FIFO中,讀寫控制信號以及數據均處於同一時鐘域,滿足STA分析時一般不會出現亞穩態等不穩定情形;而對於異步FIFO,讀寫相關信號處於不同時鐘域,信號的不同步可能會導致

原创 FPGA芯片結構(可編程輸入輸出單元IOB/可配置邏輯塊CLB/數字時鐘管理模塊DCM/ 嵌入式塊RAM(BRAM)/豐富的佈線資源/ 底層內嵌功能單元/內嵌專用硬核)

      目前主流的FPGA仍是基於查找表技術的,已經遠遠超出了先前版本的基本性能,並且整合了常用功能(如RAM、時鐘管理 和DSP)的硬核(ASIC型)模塊。如圖1-1所示(注:圖1-1只是一個示意圖,實際上每一個系列的

原创 Verilog中fork join與begin end的嵌套使用---testbench的編寫

fork join中的語句爲並執行執行的,爲並行語句塊。語句之間同時開始,並行執行,雖然無法綜合,但是用於testbench的編寫時非常有用;此處以自己利用fork join編寫測試文件的例子入手,對fork join語句、begin e

原创 亞穩態相關:三種復位方式詳解---同步復位/異步復位/異步復位同步釋放

常見有三種復位方式:同步復位、異步復位、異步復位同步釋放;本文對這幾種復位方式進行介紹與分析,詳細介紹了各種復位方式的優缺點,並在此基礎上着重介紹了異步復位同步釋放的工作機理與優勢所在。 目錄 一、同步復位 1、概念 2、Verilog描

原创 Verilog中條件編譯命令`ifdef、`else、`endif詳解(用途、用法、仿真)

條件編譯在針對不同EDA工具,選擇不同激勵、根據選擇才執行一些功能等場合非常有用,本文對常見條件編譯指令進行介紹:介紹了條件編譯指令的用途、具體用法,並在此基礎上進行必要仿真,驗證了分析的正確性; 目錄 一、概念與用途 條件編譯: 用途:

原创 數字電路中的時序波形圖如何畫(Andytiming的使用)

不管是寫報告還是自己分析電路時序,如何方便迅速的畫出一個清晰明瞭的時序波形圖至關重要;Andy Timing運行窗口分上下兩部分,下部分爲波形描述,上部分實時顯示對應的波形輸出。操作簡單,適用於簡單時序圖的繪製;話不多說,直接介紹Andy

原创 FPGA面試筆試專題——一些基礎電路設計

  1、全加器設計 全加器考慮進位輸入與進位輸出,以4位全加器爲例: module full_add( input rst_n, input clk, input [3:0]a, input [3:0]b, input cin, out

原创 vivado報錯 syntax error、dout is an unknown type

代碼如下: 錯誤提示如下: 出錯原因: 原查錯思路: 1、變量名拼寫出錯 2、中文字符導致報錯 實際問題: 賦值語句必須在過程塊中,比如always塊!就是組合邏輯也一樣,而上述代碼就是忘記了在always塊中給變量賦值,導致錯誤;

原创 Verilog實現RAM(7-異步雙口SRAM:原理、實現、仿真、分析)

在之前的工作中,我們對常見存儲器件進行了名詞掃盲,通過調用IP覈實現了簡單的單端口同步讀寫SRAM、通過Verilog實現了單端口同步讀寫SRAM、單端口同步寫,異步讀SRAM、單端口異步讀寫SRAM,雙端口同步讀寫SRAM,以及雙端口異

原创 FPGA面試專題——系統最高速度計算(最快時鐘頻率)和流水線設計思想:

目錄 一、STA分析基礎 二、系統時鐘速度提升策略——流水設計 三、補充——STA保持時間分析 四、參考 一、STA分析基礎 數據傳輸延時 <= 時間傳輸延時 + 時鐘週期 - 建立時間 Tclk1 + Tco + Tcomb_logic

原创 Matlab按照二進制讀寫txt文件

1、Matlab按照二進制讀txt文件 data = textread('...\file.txt','%s');%二進制讀 2、Matlab按照二進制寫txt文件 fid = fopen('...\file.txt','wb');

原创 CAM內容尋址存儲器

    CAM是一種特殊的存儲器。所謂CAM,即內容尋址存儲器。CAM存儲器在其每個存儲單元都包含了一個內嵌的比較邏輯,寫入CAM的數據會和其內部存儲的每一個數據進行比較,並返回與端口數據相同的所有內部數據的地址。概括地講,RA