HMC7044芯片配置(圖文+解析+代碼仿真)

詳細代碼及仿真源文件已同步上傳至個人主頁資源(原創不易,轉載請注明出處)

目錄

模塊圖

代碼實現

時序圖

仿真圖

HMC7044介紹

一、概述

? ? ? ? HMC7044是帶有 JESD204B 接口的高性能、3.2 GHz、14 路輸出抖動衰減器,提供 14 路低噪聲且可配置的輸出,可以靈活地與許多不同器件接口,包括數據轉換器、現場可編程門陣列(FPGA)和混頻器本振(LO)。

查閱官方手冊,這里我們需要關心的是:

1.查找SPI總線頻率

2.SPI的發送時序,發送模式,發送多少數據

由官網手冊可知,每次通過SPI發送24bit數據,且SPI工作模式為模式0

模塊圖

模塊分析:

PLL模塊:用于生成所需時鐘,這里低于10MHZ即可,本實驗設置為5MHZ

SPI_send模塊:用于發送配置的24bit數據

SPI_ctrl模塊:用于對所需要發送的數據進行控制,以滿足HMC7044芯片的時序要求

代碼實現

module spi_send(input   wire    div_clk     ,//分頻時鐘5MHzinput   wire    sys_rst_n   ,//復位信號,低電平有效input   wire    str_flag    ,//開始標志信號input   wire    [23:0]data  ,//數據24位
/*     input   wire    spi_done    ,//全部配置完成信號 */output  reg     slen        ,//cs#片選信號,低電平有效output  wire    sclk        ,//spi傳輸時鐘output  reg     sdata       ,//spi傳輸數據,MSBoutput  reg     send_done                             
);/**************define code*********************/parameter   IDLE    =   5'd0    ,S0      =   5'd1    ,S1      =   5'd2    ,S2      =   5'd3    ,S3      =   5'd4    ;reg[2:0] state      ;//狀態機5個狀態reg[4:0] cnt_bit    ;//對數計數0-23reg clk_en          ;//時鐘使能信號wire div_clk_n      ;//對分頻時鐘取反
/**************main code*********************/
//describe div_clk_nassign div_clk_n = ~div_clk ;//describe cnt_bitalways@(posedge div_clk , negedge sys_rst_n)beginif(~sys_rst_n)cnt_bit <= 5'd0 ;else    if(cnt_bit == 5'd25)cnt_bit <= 5'd0 ;else    if(state == S1)cnt_bit <= cnt_bit + 1'd1   ;end//describe clk_enalways@(posedge div_clk , negedge sys_rst_n)beginif(~sys_rst_n)clk_en <= 1'd0 ;else    if(((cnt_bit >= 5'd0) && (cnt_bit <= 5'd23))&&(state == S1)) clk_en <= 1'd1 ;else    clk_en <= 1'd0 ;end//兩段式狀態機,第一段,時序邏輯,描述狀態轉移always@(posedge div_clk , negedge sys_rst_n)beginif(~sys_rst_n)state <= IDLE   ;else    case(state)IDLE    :beginif(str_flag)state <= S0 ;elsestate <= state  ;endS0      :   state <= S1 ;S1      :beginif(cnt_bit == 5'd24)state <= S2 ;elsestate <= state  ;endS2      :   state <= S3 ;S3      :   beginif(send_done)state <= IDLE   ;elsestate <= state  ;enddefault :   state <= IDLE   ;endcaseend//第二段,時序邏輯,描述輸出always@(posedge div_clk , negedge sys_rst_n)beginif(~sys_rst_n)slen <= 1'd1    ;else    if(str_flag)slen <= 1'd0    ;else    if(state == S2)slen <= 1'd1    ;elseslen <= slen    ;end
//describe sclk    assign sclk = (clk_en == 1'd1) ? div_clk_n : 1'd0    ;//describe sdata    always@(posedge div_clk , negedge sys_rst_n)beginif(~sys_rst_n)sdata <= 1'd0  ;else    case(cnt_bit)5'd1    :   sdata <=    data[23]    ;//MSB5'd2    :   sdata <=    data[22]    ;5'd3    :   sdata <=    data[21]    ;5'd4    :   sdata <=    data[20]    ;5'd5    :   sdata <=    data[19]    ;5'd6    :   sdata <=    data[18]    ;5'd7    :   sdata <=    data[17]    ;5'd8    :   sdata <=    data[16]    ;5'd9    :   sdata <=    data[15]    ;5'd10   :   sdata <=    data[14]    ;5'd11   :   sdata <=    data[13]    ;5'd12   :   sdata <=    data[12]    ;5'd13   :   sdata <=    data[11]    ;5'd14   :   sdata <=    data[10]    ;5'd15   :   sdata <=    data[9]     ;5'd16   :   sdata <=    data[8]     ;5'd17   :   sdata <=    data[7]     ;5'd18   :   sdata <=    data[6]     ;5'd19   :   sdata <=    data[5]     ;5'd20   :   sdata <=    data[4]     ;5'd21   :   sdata <=    data[3]     ;5'd22   :   sdata <=    data[2]     ;5'd23   :   sdata <=    data[1]     ;5'd24   :   sdata <=    data[0]     ;default :   sdata <= 1'd0   ;endcaseend//describe send_done    always@(posedge div_clk , negedge sys_rst_n)beginif(~sys_rst_n)        send_done <= 1'd0   ;else    if(state == S2)send_done <= 1'd1   ;else    send_done <= 1'd0   ;endendmodule

由于篇幅有限,其他模塊已經上傳至個人主頁資源

時序圖

參考SPI發送數據時序,將數據位改為24bit即可

仿真圖

可以看到FPGA通過SPI發送了8'h98條數據進行HMC7044配置,當配置完成的時候,進行正常工作,即配置完成

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

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

相關文章

Dify開發教程筆記(一): 文件及系統參數變量說明及使用

開始 Copy page 定義“開始” 節點是每個工作流應用&#xff08;Chatflow / Workflow&#xff09;必備的預設節點&#xff0c;為后續工作流節點以及應用的正常流轉提供必要的初始信息&#xff0c;例如應用使用者所輸入的內容、以及上傳的文件等。 配置節點在開始節點的設置頁…

iOS 26,雙版本更新來了

7 月 25 日&#xff0c;蘋果終于給用戶推送了 iOS 26 的首個公測版本。參與了公測版計劃的小伙伴在軟件更新頁面選擇 iOS 26 Public Beta 就能升級 iOS 26 的公測版。同時蘋果還推送了 iOS 26 Beta 4 的第二個版本 。也就是說之前已經升級了 iOS 26 Beta 4 的小伙伴&#xff0c…

什么是JSON,如何與Java對象轉化

JSON概念 JSON (JavaScript Object Notation) 是一種輕量級的數據交換格式。它易于人閱讀和編寫&#xff0c;同時也易于機器解析和生成。JSON 基于 JavaScript&#xff08;ECMAScript&#xff08;歐洲計算機協會制定的js規范&#xff09;&#xff09; 編程語言的一個子集&…

從零開始的云計算生活——第三十六天,山雨欲來,Ansible入門

目錄 一.故事背景 二.Ansible簡介 什么是Ansible&#xff1f; Ansible的特點 Ansible的架構 三.Ansible任務執行解析 ansible任務執行模式 ansible執行流程 ansible命令執行過程&#xff08;重要&#xff09; 四.Ansible配置解析 ansible的安裝方式 ansible的程序結…

【6G新技術探索】AG-UI(Agent User Interaction Protocol) 協議介紹

博主未授權任何人或組織機構轉載博主任何原創文章&#xff0c;感謝各位對原創的支持&#xff01; 博主鏈接 本人就職于國際知名終端廠商&#xff0c;負責modem芯片研發。 在5G早期負責終端數據業務層、核心網相關的開發工作&#xff0c;目前牽頭6G技術研究。 博客內容主要圍繞…

線性代數 下

文章目錄十一、方程組解的結構和性質1、齊次線性方程組2、非齊次線性方程組十二、Ax0的基礎解系十三、兩個方程組的公共解十四、同解方程十五、求特征值、特征向量十六、判斷A能否相似對角化十七、若A可以相似對角化&#xff0c;求P(Q)十八、二次型化標準型1、拉格朗日配方法2、…

Go語言實戰案例-自定義隊列結構

以下是《Go語言100個實戰案例》中的 數據結構與算法篇 - 案例24&#xff1a;自定義隊列結構 的完整內容&#xff0c;幫助初學者通過自定義結構體來實現隊列的數據結構。&#x1f3af; 案例目標實現一個自定義的隊列結構&#xff0c;并提供常見的隊列操作&#xff1a;入隊&#…

Windows-WSL-Docker端口開放

本文介紹如何在局域網內訪問Windows服務器端口&#xff0c;特別是針對已安裝WSL環境并在其中運行Docker服務的情況。主要解決Docker服務向局域網開放端口的配置問題步驟一&#xff1a;配置轉發當你的應用程運行在WSL中時&#xff0c;需要執行此步驟。在宿主機&#xff08;windo…

面試知識梳理-vue3和vue2區別

vue3相對于vue2的優勢 性能更好體積更小更好的ts支持&#xff08;vue3 ts開發&#xff09;更好的代碼組織更好的邏輯抽離更多新功能&#xff08;vue2其實也都能自己做出來&#xff09; 更好的代碼組織 Composition API 的革新 Vue 2 采用 ??Options API??&#xff0c;通過 …

棧的核心原理

1 棧的概念及結構棧是一種特殊的線性表&#xff0c;其特點是只允許在固定的一端進行插入和刪除操作。進行操作的一端稱為棧頂&#xff0c;另一端稱為棧底。棧中的元素遵循后進先出&#xff08;LIFO&#xff0c;Last In First Out&#xff09; 原則。壓\入\進棧&#xff08;Push…

【無標題】暗物質暗能量——以下是用11維拓撲量子色動力學模型解釋暗物質和暗能量的完整理論框架。

暗物質暗能量——以下是用11維拓撲量子色動力學模型解釋暗物質和暗能量的完整理論框架。暗物質的拓撲本質 1. 跨橋零模振動理論 暗物質對應跨橋結構的基態振動模&#xff1a; math \phi_{\text{DM}} \frac{1}{\sqrt{6}} \sum_{f1}^6 \mathcal{B}_f^{(0)} $$ 其中 $\mathcal{B}…

【接口自動化】-1- 初識接口

一、什么是接口 接口涉及到四個實體&#xff1a;&#xff08;我去飯店點餐&#xff09; 我是客人 &#xff1a;客戶端 廚師&#xff1a;服務器 服務員&#xff1a;接口 菜單&#xff1a;接口文檔 接口定義了一套信息規則讓兩個系統之間互相不必知道對方的內部&#xff0c…

華為FTTR光貓V173 F30改公開版界面 附帶真正的s161補全一體固件

【本文介紹】 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 這款FTTR的V173 F30看著顏值很高 也很實用 畢竟是XGPON萬兆的光貓…

【學習】數字化車間與智能工廠如何推進制造業轉型

在制造業轉型升級的浪潮中&#xff0c;數字化車間與智能工廠已成為推動產業變革的核心引擎。前者通過物聯網、大數據與自動化技術的深度融合&#xff0c;實現生產流程的精細化管控與資源優化&#xff1b;后者則依托人工智能、5G通信與數字孿生技術&#xff0c;構建起具備自感知…

HTML元素與高級功能完全教程:從基礎到精通

目錄 章節1:HTML的靈魂——元素的本質與結構化思維 1.1 元素的核心:標簽、屬性與內容 1.2 語義化的革命 1.3 常見的“坑”與避坑指南 章節2:表單元素:打造交互的基石 2.1 表單基礎:與核心控件 2.2 高級輸入類型與驗證 2.3 表單的可訪問性與用戶體驗 章節3:HTML5多媒…

IP證書:構建數字世界知識產權安全防線的基石

引言 在數字化浪潮席卷全球的今天&#xff0c;知識產權&#xff08;IP&#xff09;的保護已成為企業、機構乃至個人面臨的重要挑戰。無論是商業秘密、專利技術&#xff0c;還是數字版權&#xff0c;其安全性和可信度都直接影響著創新生態的健康發展。而作為數字安全的核心工具…

CAD插件『PDF轉CAD格式』安裝教程

在工程設計領域&#xff0c;常規流程是將完成的CAD圖紙直接轉換為PDF格式或輸出為紙質藍圖進行分發。由于PDF文件具有跨平臺兼容性強、防篡改等特性&#xff0c;在工程交付環節被廣泛采用。但當需要對既有圖紙進行二次修改時&#xff0c;PDF格式的編輯局限性便凸顯出來&#xf…

【硬件-筆試面試題】硬件/電子工程師,筆試面試題-26,(知識點:硬件電路的調試方法:信號追蹤,替換,分段調試)

目錄 1、題目 2、解答 一、信號追蹤法&#xff08;Signal Tracing&#xff09; 原理 操作步驟 應用場景 二、替換法&#xff08;Replacement Method&#xff09; 原理 操作要點 應用場景 三、分段調試法&#xff08;Segmented Debugging&#xff09; 原理 操作步驟…

Qt中QObject類的核心作用與使用

一、QObject類簡介 各位小伙伴&#xff0c;在Qt的世界里&#xff0c;QObject類就像是"萬物之母"&#xff0c;它是Qt對象模型的核心基類。幾乎所有的Qt類都直接或間接地繼承自QObject。QObject提供了很多重要的功能&#xff0c;比如對象樹管理、信號與槽機制、元對象系…

TVBOXOS6.0雙端APP二開源碼完整版全開源源碼重構版

今天介紹的TVBOXOS手機版App源碼采用了純64位的前端架構&#xff0c;版本則基于本站修正過的6.0前端進行構建。經過多次優化&#xff0c;這款應用不僅操作流暢&#xff0c;界面設計也頗具美感。前端完全集成了安卓原生Java架構&#xff0c;而后端管理采用的是PHP的如意系統。前…