chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Modelsim仿真I2C控制器

友晶FPGA ? 來源:友晶FPGA ? 2026-01-10 14:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

ModelSim是Model Technology(Mentor Graphics的子公司)的HDL硬件描述語(yǔ)言的仿真軟件。該軟件可以用來實(shí)現(xiàn)對(duì)設(shè)計(jì)的VHDL、Verilog HDL 或是兩種語(yǔ)言混合的程序進(jìn)行仿真。這里的仿真是對(duì)設(shè)計(jì)進(jìn)行功能仿真(也稱之為前仿真),其目的是驗(yàn)證電路功能是否符合設(shè)計(jì)要求。

本篇主要是對(duì)I2C_Controller模塊進(jìn)行功能仿真。test_bench的核心是模擬FPGA給出數(shù)據(jù)24'h729803,同時(shí)也模擬I2C外設(shè)來接收該數(shù)據(jù)并給出應(yīng)答反饋。

505e9206-eb67-11f0-92de-92fbcf53809c.png



1. 首先用Quartus打開HDMI_block_move工程(HDMI_block_move工程下載鏈接:https://pan.baidu.com/s/1XxFFj-3UTfB_Er-yz0f_Cg提取碼: tera),然后在該工程路徑下新建一個(gè)Verilog test bench仿真文件。右擊File——New, 選擇Verilog HDL File,然后點(diǎn)擊OK:

50c61ad4-eb67-11f0-92de-92fbcf53809c.png

2. 將下面代碼拷貝到新建的.v文件當(dāng)中:

`timescale 1ns/1ps


module tb_I2C_Controller();
 // 輸出信號(hào)定義
 regCLOCK;
 reg [23:0]I2C_DATA;
 regGO;
 regRESET;


// 雙向信號(hào)定義(I2C_SDAT需要上拉電阻模擬總線特性)
 wireI2C_SDAT;
 reg sdat_drive; // 用于模擬從機(jī)應(yīng)答的驅(qū)動(dòng)信號(hào)


// 輸入信號(hào)定義
 wireI2C_SCLK;
 wireEND;
 wireACK;


// 上拉電阻模擬(I2C總線默認(rèn)高電平)
 assignI2C_SDAT=sdat_drive?1'bz :1'b0;


// 例化被測(cè)試模塊
I2C_Controlleruut (
 .CLOCK(CLOCK),
 .I2C_DATA(I2C_DATA),
 .GO(GO),
 .RESET(RESET),
 .I2C_SDAT(I2C_SDAT),
 .I2C_SCLK(I2C_SCLK),
 .END(END),
 .ACK(ACK)
);


reg [7:0] cnt_I2Cclk;  
// 時(shí)鐘生成(100MHz,周期10ns)
initial begin
CLOCK=0;
 forever #5CLOCK=~CLOCK;
end


// 主仿真過程
initial begin
// 初始化信號(hào)
I2C_DATA=24'h729803; // 待寫入的目標(biāo)數(shù)據(jù)
GO=0;
RESET=0;
 sdat_drive=1; // 初始釋放總線(上拉為高)


// 復(fù)位過程
 #20RESET=1; // 20ns后釋放復(fù)位


// 等待模塊進(jìn)入空閑狀態(tài)
 #50;


// 啟動(dòng)I2C寫入過程
GO=1;
 #10GO=0;   // 提供一個(gè)時(shí)鐘周期的GO脈沖
 cnt_I2Cclk=0;   
// 模擬從機(jī)應(yīng)答(在每個(gè)字節(jié)傳輸?shù)牡?個(gè)時(shí)鐘周期拉低SDA)
// 監(jiān)控時(shí)鐘線,在需要應(yīng)答時(shí)拉低SDA
 forever @(negedgeI2C_SCLK) begin
  cnt_I2Cclk<=?cnt_I2Cclk?+1?;
? ??if?(cnt_I2Cclk?==?29) begin
? ? ??$stop;
? ? end
? ??if?(uut.CNT?==?8) begin ?// 第9位傳輸時(shí)
? ? ? sdat_drive?=?0; ?// 產(chǎn)生應(yīng)答信號(hào)(低電平)
? ? end?
? ??else?begin
? ? ? sdat_drive?=?1; ?// 其他時(shí)間釋放總線
? ? end
? end ? ? ? ?
end
endmodule


3. 點(diǎn)擊Save按鈕,將文件保存為tb_I2C_Controller.v。
4. 安裝Quartus軟件的時(shí)候也記得安裝Modelsim 工具(這些安裝步驟在后期文章里面會(huì)發(fā)布),接下來要將Modelsim 的安裝路徑設(shè)置一下就才可以在仿真時(shí)自動(dòng)調(diào)用指定的仿真工具。首先是在Tools菜單下面找到Options:

513c3e44-eb67-11f0-92de-92fbcf53809c.png

5. 在彈出的對(duì)話框中選擇EDA Tool Options ,點(diǎn)擊...指定軟件路徑: D:intelFPGA_lite17.1modelsim_asewin32aloem:

51982fba-eb67-11f0-92de-92fbcf53809c.png

6. 接下來設(shè)置仿真文件路徑。點(diǎn)擊Assignments——Settings:

51f5e86c-eb67-11f0-92de-92fbcf53809c.png

7. 點(diǎn)擊 Simulation,仿真工具選擇ModelSim-Altera, 然后點(diǎn)選Compile test bench圓圈,點(diǎn)擊Test Benches...

5279a6fc-eb67-11f0-92de-92fbcf53809c.png

8. 點(diǎn)擊New...

52d8e554-eb67-11f0-92de-92fbcf53809c.png

9. 然后填寫Test bench name 名稱為tb_I2C_Controller,接著點(diǎn)擊File name處對(duì)應(yīng)的...按鈕:

533111a2-eb67-11f0-92de-92fbcf53809c.png

10. 選擇tb_I2C_Controller.v文件,然后點(diǎn)擊Open:

539dd300-eb67-11f0-92de-92fbcf53809c.png


11. 接著點(diǎn)擊Add將仿真文件添加到Test Bench,依次點(diǎn)擊OK、OK、Apply和 OK退出窗口:

53f9e064-eb67-11f0-92de-92fbcf53809c.png

54574bf0-eb67-11f0-92de-92fbcf53809c.png

54c91c9e-eb67-11f0-92de-92fbcf53809c.png

12. 在仿真之前要先點(diǎn)擊Start Analysis&Synthesis按鈕進(jìn)行分析和綜合:

5524db42-eb67-11f0-92de-92fbcf53809c.png

13. 再點(diǎn)擊Tools——Run Simulation Tool_RTL Simulation進(jìn)行仿真:

5586c80c-eb67-11f0-92de-92fbcf53809c.png

14. 點(diǎn)擊Zoom Full按鈕將顯示全部波形。

55f96fce-eb67-11f0-92de-92fbcf53809c.png

15. 最后波形生成如下:

5655eeac-eb67-11f0-92de-92fbcf53809c.png

通過波形可以看到,用于觸發(fā)I2C寫操作的GO信號(hào)拉高一個(gè)時(shí)鐘周期后,I2C開始寫數(shù)據(jù)的操作?,F(xiàn)在要寫的數(shù)據(jù)是24'h729803,二進(jìn)制是0111_0010_1001_1000_0000_0011, 將波形放大分三段截圖將看到如下內(nèi)容:

56b4aabe-eb67-11f0-92de-92fbcf53809c.png

571e36b4-eb67-11f0-92de-92fbcf53809c.png

5779bc64-eb67-11f0-92de-92fbcf53809c.png

數(shù)據(jù)發(fā)送的狀態(tài)循環(huán)是ST=2 → ST=3 → ST=4 → ST=5 → ST=2,這個(gè)循環(huán)發(fā)送1位數(shù)據(jù),共循環(huán)9次(8位數(shù)據(jù)+ACK),第9位(1'b1)是確保在第9個(gè)時(shí)鐘周期主機(jī)釋放SDA總線。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1660

    文章

    22412

    瀏覽量

    636357
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1556

    瀏覽量

    131242
  • ModelSim
    +關(guān)注

    關(guān)注

    5

    文章

    175

    瀏覽量

    49289
  • 仿真軟件
    +關(guān)注

    關(guān)注

    21

    文章

    281

    瀏覽量

    31848

原文標(biāo)題:6-DE10-Nano的HDMI方塊移動(dòng)案例——使用Modelsim仿真I2C控制器

文章出處:【微信號(hào):友晶FPGA,微信公眾號(hào):友晶FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于FPGA的I2C控制模塊設(shè)計(jì)

    I2C_WRITE_WDATA.v模塊實(shí)現(xiàn)I2C寫時(shí)序,I2C_Controller (I2C控制器)例化了
    的頭像 發(fā)表于 12-26 09:48 ?4962次閱讀
    基于FPGA的<b class='flag-5'>I2C</b><b class='flag-5'>控制</b>模塊設(shè)計(jì)

    基于FPGA的I2C SLAVE模式總線的設(shè)計(jì)方案

    。經(jīng)過實(shí)際應(yīng)用,證實(shí)了本方案操作簡(jiǎn)便,實(shí)用性強(qiáng)。##I2C SLAVE 控制器的接口部分主要包括,信號(hào)異步時(shí)鐘域的轉(zhuǎn)換。輸入濾波,用來抑制毛刺。及SDA 線的雙向轉(zhuǎn)換。
    發(fā)表于 02-26 11:39 ?2.1w次閱讀

    新手求助,I2C總線從機(jī)的應(yīng)答信號(hào)不能用modelsim仿真出?

    關(guān)于I2C總線,I2C總線從機(jī)的應(yīng)答信號(hào)是不是不能用modelsim直接仿真出哦?所謂從機(jī)將SDA拉低的應(yīng)答信號(hào),是不是要在實(shí)際的電路里才有,要么就用軟件編程模擬從機(jī)?反正我直接用編
    發(fā)表于 04-15 13:04

    實(shí)現(xiàn)I2C總線控制器的VHDL源代碼

    I2C總線控制器 altera提供 The I2C Controller was designed for the MC68307 uC, provides a simplified
    發(fā)表于 05-20 10:25 ?251次下載

    LM3S系列微控制器I2C應(yīng)用文檔

    LM3S系列微控制器I2C應(yīng)用文檔基于LM5749的I2C從機(jī)功能,模擬24C02傳輸協(xié)議操作。
    發(fā)表于 04-03 14:29 ?52次下載

    基于Verilog的I2C控制器的設(shè)計(jì)與綜合

    為滿足嵌入式系統(tǒng)中專用芯片功能不能達(dá)到系統(tǒng)要求的現(xiàn)狀,設(shè)計(jì)出一種功能可擴(kuò)展的I2C slave控制器,這種控制器與傳統(tǒng)的專用I2C芯片不同。專用的I
    發(fā)表于 10-25 16:58 ?60次下載
    基于Verilog的<b class='flag-5'>I2C</b><b class='flag-5'>控制器</b>的設(shè)計(jì)與綜合

    I2C總線控制器的工作原理及EEPROM的Linux驅(qū)動(dòng)程序的設(shè)計(jì)

    I2C (Inter-Integrated Circuit1總線是一種由Philips公司開發(fā)的2線式串行總線,用于連接微控制器及其外圍設(shè)備。它是同步通信的一種特殊形式,具有接口線少、控制
    發(fā)表于 10-26 15:37 ?7次下載
    <b class='flag-5'>I2C</b>總線<b class='flag-5'>控制器</b>的工作原理及EEPROM的Linux驅(qū)動(dòng)程序的設(shè)計(jì)

    Firefly-RK3128主板I2C控制器

    Firefly-RK3128 開發(fā)板上有 4 個(gè)片上 I2C 控制器。本文主要描述如何在該開發(fā)板上配置 I2C。
    的頭像 發(fā)表于 11-29 08:47 ?2179次閱讀
    Firefly-RK3128主板<b class='flag-5'>I2C</b><b class='flag-5'>控制器</b>

    fireflyFace-RK3399主板I2C控制器介紹

    Face-RK3399 開發(fā)板上有 9 個(gè)片上 I2C 控制器,
    的頭像 發(fā)表于 12-04 09:17 ?3733次閱讀
    fireflyFace-RK3399主板<b class='flag-5'>I2C</b><b class='flag-5'>控制器</b>介紹

    淺談PCA9564 I2C 總線控制器評(píng)估板

    PCA9564 I2C 總線控制器連接在 P89LV51RD2I2C 總線之間。 飛利浦 PCA9531 I2C 8 位 LED 調(diào)
    的頭像 發(fā)表于 06-17 17:26 ?4441次閱讀
    淺談PCA9564 <b class='flag-5'>I2C</b> 總線<b class='flag-5'>控制器</b>評(píng)估板

    i2c總線用來做什么_i2c總線數(shù)據(jù)傳輸過程

    I2C總線控制器為微控制器或微處理提供控制I2C總線的接口,它
    發(fā)表于 11-24 14:16 ?8615次閱讀

    硬件I2C與模擬I2C

    配置;而軟件I2C是沒有寄存這個(gè)概念的。 軟件I2C一般是使用GPIO管腳,用軟件控制SCL,SDA線輸出高低電平,模擬i2c協(xié)議的時(shí)序
    發(fā)表于 12-28 19:14 ?82次下載
    硬件<b class='flag-5'>I2C</b>與模擬<b class='flag-5'>I2C</b>

    Linux I2C驅(qū)動(dòng)入門知識(shí)科普

    I2C 總線驅(qū)動(dòng), I2C總線驅(qū)動(dòng)就是SOC的 I2C控制器驅(qū)動(dòng),也叫做 I2C適配器驅(qū)動(dòng)。
    的頭像 發(fā)表于 12-29 13:59 ?2674次閱讀

    I2C控制器驅(qū)動(dòng)介紹

    控制器驅(qū)動(dòng) I2C 總線驅(qū)動(dòng)重點(diǎn)是 I2C 適配器驅(qū)動(dòng),這里要用到兩個(gè)重要的數(shù)據(jù)結(jié)構(gòu):i2c_adapter 和 i2c_algorithm
    的頭像 發(fā)表于 07-22 15:38 ?2950次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>控制器</b>驅(qū)動(dòng)介紹

    I2C子系統(tǒng)SW Architecture

    適配器(控制器)驅(qū)動(dòng),這里用到兩個(gè)重要的數(shù)據(jù)結(jié)構(gòu):i2c_adapter 和 i2c_algorithm。其中,Linux 內(nèi)核將 SOC 的 I2C 適配器(
    的頭像 發(fā)表于 07-22 16:01 ?1669次閱讀
    <b class='flag-5'>I2C</b>子系統(tǒng)SW Architecture