在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【教程分享】零基礎學習:基于FPGA的多路選擇器設計(附代碼)

電子發燒友論壇 ? 來源:未知 ? 2023-06-07 12:25 ? 次閱讀

大俠好,歡迎來到FPGA技術江湖。本系列將帶來FPGA的系統性學習,從最基本的數字電路基礎開始,最詳細操作步驟,最直白的言語描述,手把手的“傻瓜式”講解,讓電子、信息、通信類專業學生、初入職場小白及打算進階提升的職業開發者都可以有系統性學習的機會。


系統性的掌握技術開發以及相關要求,對個人就業以及職業發展都有著潛在的幫助,希望對大家有所幫助。后續會陸續更新 Xilinx 的 Vivado、ISE 及相關操作軟件的開發的相關內容,學習FPGA設計方法及設計思想的同時,實操結合各類操作軟件,會讓你在技術學習道路上無比的順暢,告別技術學習小BUG卡破腦殼,告別目前忽悠性的培訓誘導,真正的去學習去實戰應用,這種快樂試試你就會懂的。話不多說,上貨。



多路選擇器設計


多路選擇器是數據選擇器的別稱。在多路數據傳送過程中,能夠根據需要將其中任意一路選出來的電路,叫做數據選擇器,也稱多路選擇器或多路開關。


二選一多路選擇器


二選一多路選擇器的數據輸入有兩個,分別為dataa和datab。為了能夠確定選擇那一路數據能夠通過,還需要一個選擇端(sel)。因為輸入只有兩路數據,選擇端只要能夠表現出兩種狀態即可,因而選擇端位寬為1即可。


假設dataa和datab都是位寬為1的數據,當sel為0時,選擇dataa通過;當sel為1時,選擇datab通過;odata表示通過后的數據。



圖1 :二選一多路選擇器模型


根據上述功能,列出真值表。



圖2 :二選一多路選擇器真值表


根據真值表,化簡得出布爾表達式:

odata = (dataa &(~sel)) | (datab & sel);


verilog中,算術運算中,“&”表示算術(按位)與,“|”表示算術(按位)或,“~”表示算術(按位)取反。


在數字電路基礎中,根據表達式,就可以得到電路圖。


現在我們要在FPGA中實現,二選一多路選擇命名為“mux2_1”,不要命名為mux21,mux21是quartus中默認器件庫中的名字,命名相同會出現錯誤。


建立工程后,輸入如下設計代碼:(mux2_1代碼)




圖4 :mux2_1的RTL視圖


設計完成后,輸入如下testbench代碼:(mux2_1_tb代碼)



在verilog中,“//”表示本行被注釋,綜合器綜合時,自動略過。


在testbench中,連接線的名字可以隨意定義,建議和端口相同。


設置好testbench后,運行RTL 仿真。



圖6 :RTL仿真波形


對比波形和真值表,設計正確。


四選一多路選擇器


四選一多路選擇器的數據輸入有四個,分別為dataa、datab、datac和datad。為了能夠確定選擇那一路數據能夠通過,還需要一個選擇端(sel)。因為輸入四路數據,選擇端要求能夠表現出四種狀態,因而選擇端位寬為2。


假設dataa、 datab、datac和datad都是位寬為8的數據,當sel為00時,選擇dataa通過;當sel為01時,選擇datab通過;當sel為10時,選擇datac通過;當sel為11時,選擇datad通過;odata表示通過后的數據。


圖7 :四選一多路選擇器模型


根據組合邏輯設計規則,我們將所有的情況全部列出,得出真值表,進而得到布爾表達式。但是現在輸入的組合排列太多了(2的34次冪),不能夠直接得出真值表。


此時的設計有兩種方法。


第一種方法,根據功能拆分邏輯。將輸入為8的四選一多路選擇器,拆分為8個位寬為1的四選一多路選擇器,首先列出位寬為1真值表,得出位寬為1的四選一多路選擇器。然后并接八個即可。



圖8 :8個位寬1多路選擇器構成位寬8的多路選擇器


這種設計方法,不在提供設計源碼,讀者可以自行討論設計。


第二種方法,根據verilog的設計規則,可以直接描述邏輯功能,而不用描述門電路。這種設計規則有利于將設計做的比較大。


位寬為8的四選一多路選擇器命名為“mux4_1”。


建立工程后,輸入設計代碼如下:(mux4_1代碼)



always 語句用來表示組合邏輯時,即可以采用門電路的描述方法,也可以采用功能性的描述語句。


“always @()”中()是信號敏感列表。中間可以寫入本模塊的所有的敏感信號,“*”可以表示所有的敏感信號。建議利用always語句描述組合邏輯時,用“*”表示所有信號。用“*”時,“()”可以省略。即:always@(*) 等效 always@*。



在case語句中,首先會判斷變量和那個分支相同,并且執行對應的表達式。當和所有的分支都不相同時,執行default后的表達式。


verilog規定,在always語句中被賦值的變量,應該定義為“reg”類型。



圖11 :mux4_1的RTL視圖


設計完成后,輸入testbench代碼。mux4_1_tb 代碼如下:



由于本次輸入的的組合太多,不能全覆蓋測試。故采用隨機數來進行測試。


$random是一個系統函數,調用時,可以返回一個隨機值。注意:這個系統函數只能出現testbench中,在設計中出現是不可綜合的。


“$random函數調用時返回一個32位的隨機數,它是一個帶符號的整形數...”。例:

reg[23:0] rand;

rand=$random % 60; //產生一個在 -59—59范圍的隨機數


產生0~59之間的隨機數,例:

reg[23:0] rand;

rand={$random} % 60; //通過{}產生0—59范圍的隨機數


產生在min, max之間隨機數,例:

reg[23:0] rand;

rand = min+{$random}%(max-min+1);


在testbench中,需要按照一定順序給輸入線賦值。在mux4_1_tb中,我們可以通過延遲賦值,然后再次延遲賦值,來完成賦值。因為賦值時采用隨機數,所以每次編寫的語句是相同的。verilog中提供了repeat語句,用來減少人工輸入。



圖13 :兩種等效的賦值方式


輸入testbench后,進行綜合分析。


設置testbench,運行RTL仿真。



圖14:RTL仿真圖


經過分析,符合四選一多路選擇器的設計。





聲明本文由電子發燒友社區發布,轉載請注明以上來源。如需社區合作及入群交流,請添加微信EEFans0806,或者發郵箱liuyong@huaqiu.com。


更多熱點文章閱讀

  • 基于Cortex-M3內核的32位微控制器,STM32項目實戰分享!

  • 基于32位RISC-V設計的互聯型微控制器,沁恒微CH32V307開發樣例

  • RK3568!四核64位ARMv8.2A架構,匯聚編譯源碼及實戰樣例

  • 尺寸僅有21mm*51mm,板邊采用郵票孔設計,合宙 Air105 核心板開發總結

  • 嵌入式Linux開發秘籍!工程師大佬親歷分享項目樣例


原文標題:【教程分享】零基礎學習:基于FPGA的多路選擇器設計(附代碼)

文章出處:【微信公眾號:電子發燒友論壇】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴

原文標題:【教程分享】零基礎學習:基于FPGA的多路選擇器設計(附代碼)

文章出處:【微信號:gh_9b9470648b3c,微信公眾號:電子發燒友論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    零基學習LuatOS編程:快速上手開發實戰教程!

    無論你是剛接觸物聯網編程的新手,還是希望拓展技能的技術愛好者,本教程將為零基礎的讀者提供一條清晰的LuatOS學習路徑。從安裝開發工具到編寫第一個程序,我們將通過實例講解核心概念,助你快速實現從理論
    的頭像 發表于 06-13 17:27 ?96次閱讀
    <b class='flag-5'>零基</b>礎<b class='flag-5'>學習</b>LuatOS編程:快速上手開發實戰教程!

    HarmonyOS實戰:自定義時間選擇器

    前言 最近在日常鴻蒙開發過程中,經常會使用一些時間選擇器,鴻蒙官方提供的時間選擇器滿足不了需求,所以自己動手自定義一些經常會使用到的時間選擇器,希望能幫到你,建議點贊收藏! 實現效果 需求分析 默認
    的頭像 發表于 06-09 15:51 ?99次閱讀
    HarmonyOS實戰:自定義時間<b class='flag-5'>選擇器</b>

    【「零基礎開發AI Agent」閱讀體驗】+讀《零基礎開發AI Agent》掌握扣子平臺開發智能體方法

    收到發燒友網站寄來的《零基礎開發AI Agent》這本書已經有好些天了,這段時間有幸拜讀了一下全書,掌握了一個開發智能體的方法。 該書充分從零基礎入手,先闡述了Agent是什么,它的基本概念和知識
    發表于 05-14 19:51

    【「零基礎開發AI Agent」閱讀體驗】+ 入門篇學習

    很高興又有機會學習ai技術,這次試讀的是「零基礎開發AI Agent」,作者葉濤、管鍇、張心雨。 大模型的普及是近三年來的一件大事,萬物皆可大模型已成為趨勢。作為大模型開發應用中重要組成部分,提示詞
    發表于 05-02 09:26

    零基學習一階RC低通濾波(從原理到實踐)

    *附件:零基學習一階RC低通濾波(從原理到實踐).docx
    發表于 03-26 14:35

    數字電路—13、數據選擇器

    數據選擇器定義:在多路數據傳送過程中,能夠根據需要將其中任意一路挑選出來的電路,叫做數據選擇器, 也稱為多路選擇器,其作用相當于
    發表于 03-26 11:13

    零基礎搭建基于STM32的M系列LoRa模塊透傳例程(上)

    介紹本文適用于零基礎,手把手教你搭建基于STM32單片機控制億佰特E22-M系列、E220-M系列和E32-M系列模塊,旨在降低M系列模塊開發難度,幫助大家更快上手M系列的模組。本次教程分為“上篇
    的頭像 發表于 03-20 19:33 ?266次閱讀
    <b class='flag-5'>零基</b>礎搭建基于STM32的M系列LoRa模塊透傳例程(上)

    Vivado Tcl零基礎入門與案例實戰【高亞軍編著】

    Vivado Tcl零基礎入門與案例實戰-高亞軍編寫
    發表于 01-14 11:13

    TMS320C6000 DSP中斷選擇器參考指南

    電子發燒友網站提供《TMS320C6000 DSP中斷選擇器參考指南.pdf》資料免費下載
    發表于 12-24 17:11 ?0次下載
    TMS320C6000 DSP中斷<b class='flag-5'>選擇器</b>參考指南

    零基礎入門PCB工程師

    各位前輩大家好,零基礎入門PCB工程師,有什么學習資料推薦嗎?
    發表于 11-27 16:54

    零基礎嵌入式開發學習路線

    “嵌入式開發”沒有接觸過的同學可能會不明覺厲,但是只要你了解了,感興趣并且有一個正確的學習路線的話,零基礎也能入門。給大家介紹一個簡單易懂的學習路線,讓你能夠從開始
    發表于 10-25 15:55

    請問模擬開關跟多路復用器有什么區別?

    我想請問,模擬開關跟多路復用器有什么區別。比如單刀雙擲開關,是不是就是2選1的多路選擇器,只是模擬開關是1:2,AMUX是2:1?我理解的區別是模擬開關的狀態要么通道A導通,要么通道B導通,不能同時導通,然而
    發表于 08-12 08:16

    數據選擇器是時序邏輯電路嗎

    選擇器的基本概念 數據選擇器,也稱為多路選擇器(Multiplexer,簡稱Mux),是一種常見的數字電路組件,其基本功能是從多個輸入信號中選擇
    的頭像 發表于 08-01 14:39 ?1492次閱讀

    數據選擇器是組合邏輯電路嗎

    數據選擇器(Data Selector)是一種常見的組合邏輯電路,用于根據輸入的選擇信號,從多個輸入信號中選擇一個輸出。在數字電路設計中,數據選擇器廣泛應用于
    的頭像 發表于 08-01 14:28 ?1218次閱讀

    基于FPGA的“俄羅斯方塊”設計(代碼

    今天給各位大俠帶來基于FPGA的“俄羅斯方塊”設計,設計思路以及代碼參考文檔。本篇主要在FPGA上實現了一個經典小游戲“俄羅斯方塊”。本項目基本解決方案是,使用Xilinx Zynq系列開發板
    發表于 07-14 08:31
    主站蜘蛛池模板: 亚洲大黑香蕉在线观看75 | 欧美午夜性 | 天天舔天天操 | 色欧美综合 | 天堂网www中文在线资源 | 2017天天干夜夜操 | 亚洲成av人影片在线观看 | 狠狠色欧美亚洲狠狠色www | 久久夜色撩人精品国产 | 久青草国产手机在线观 | 午夜一级免费视频 | 最近2018中文字幕2019高清 | 色婷婷99综合久久久精品 | 在线观看精品视频看看播放 | 欧美黑人粗硬大在线看 | 五月天狠狠| 国产一区二区三区夜色 | 欧美精品区 | 婷婷色婷婷 | 狠狠色噜噜狠狠狠狠2018 | 又长又大又粗又硬3p免费视 | 欧美爱爱帝国综合社区 | 黄色大片免费观看 | 韩国三级理在线视频观看 | 中文天堂最新版www官网在线 | 美女网站一区二区三区 | 国产好深好硬好爽我还要视频 | 国产三级观看 | 日韩城人视频 | www在线观看| 色wwwwww | 日韩免费观看一级毛片看看 | 中文天堂最新版在线中文 | 日本最顶级丰满的aⅴ艳星 日本最好的免费影院 | 天堂在线最新版www中文 | 99亚洲自拍| 日本大片网 | 奇米久草 | 最新亚洲人成网站在线影院 | 一本到在线观看视频不卡 | 欧美yw193.c㎝在线观看 |