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仿真--波形狀態(tài)機(jī)名稱顯示

FPGA開(kāi)源工作室 ? 來(lái)源:FPGA開(kāi)源工作室 ? 作者:leee ? 2021-07-23 15:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在通常的modelsim波形仿真中,狀態(tài)機(jī)的顯示為16進(jìn)制,如 3‘h1。如下圖所示str_cur為狀態(tài)跳變信號(hào)。

FPGA開(kāi)源工作室

為了更加直觀的以文本形式顯示狀態(tài)機(jī)的跳變,如自己定義的IDLE等,我們可以使用

virtual typevirtual function

狀態(tài)機(jī)源文件:

//vending-machine// 2 yuan for a bottle of drink// only 2 coins supported: 5 jiao and 1 yuan// finish the function of selling and changing

module vending_machine ( input clk , input rstn , input [1:0] coin , //01 for 0.5 jiao, 10 for 1 yuan

output [1:0] change , output sell //output the drink );

//machine state decode parameter IDLE = 3‘d0 ; parameter GET05 = 3’d1 ; parameter GET10 = 3‘d2 ; parameter GET15 = 3’d3 ;

//machine variable reg [2:0] st_cur ;

//(1) using one state-variable do describe reg [1:0] change_r ; reg sell_r ; always @(posedge clk or negedge rstn) begin if (!rstn) begin st_cur 《= ‘b0 ; change_r 《= 2’b0 ; sell_r 《= 1‘b0 ; end else begin case(st_cur)

IDLE: begin change_r 《= 2’b0 ; sell_r 《= 1‘b0 ; case (coin) 2’b01: st_cur 《= GET05 ; 2‘b10: st_cur 《= GET10 ; endcase end GET05: begin case (coin) 2’b01: st_cur 《= GET10 ; 2‘b10: st_cur 《= GET15 ; endcase end

GET10: case (coin) 2’b01: begin st_cur 《= GET15 ; end 2‘b10: begin st_cur 《= IDLE ; sell_r 《= 1’b1 ; end endcase

GET15: case (coin) 2‘b01: begin st_cur 《= IDLE ; sell_r 《= 1’b1 ; end 2‘b10: begin st_cur 《= IDLE ; change_r 《= 2’b1 ; sell_r 《= 1‘b1 ; end endcase

default: begin st_cur 《= IDLE ; end

endcase // case (st_cur) end // else: !if(!rstn) end

assign sell = sell_r ; assign change = change_r ;

endmodule

仿真頂層文件:

`timescale 1ns/1ps

module tb_vending_machine;

reg clk; reg rstn ; reg [1:0] coin ; wire [1:0] change ; wire sell ;

//clock generating parameter CYCLE_200MHz = 10 ; // always begin clk = 0 ; #(CYCLE_200MHz/2) ; clk = 1 ; #(CYCLE_200MHz/2) ; end

//motivation generating reg [9:0] buy_oper ; //store state of the buy operation initial begin buy_oper = ’h0 ; coin = 2‘h0 ; rstn = 1’b0 ; #8 rstn = 1‘b1 ; @(negedge clk) ;

//case(1) 0.5 -》 0.5 -》 0.5 -》 0.5 #16 ; buy_oper = 10’b00_0101_0101 ; repeat(5) begin @(negedge clk) ; coin = buy_oper[1:0] ; buy_oper = buy_oper 》》 2 ; end

//case(2) 1 -》 0.5 -》 1, taking change #16 ; buy_oper = 10‘b00_0010_0110 ; repeat(5) begin @(negedge clk) ; coin = buy_oper[1:0] ; buy_oper = buy_oper 》》 2 ; end

//case(3) 0.5 -》 1 -》 0.5 #16 ; buy_oper = 10’b00_0001_1001 ; repeat(5) begin @(negedge clk) ; coin = buy_oper[1:0] ; buy_oper = buy_oper 》》 2 ; end

//case(4) 0.5 -》 0.5 -》 0.5 -》 1, taking change #16 ; buy_oper = 10‘b00_1001_0101 ; repeat(5) begin @(negedge clk) ; coin = buy_oper[1:0] ; buy_oper = buy_oper 》》 2 ; end end

vending_machine u_mealy ( .clk (clk), .rstn (rstn), .coin (coin), .change (change), .sell (sell));

//simulation finish always begin #100; if ($time 》= 10000) $finish ; end

endmodule // test

仿真腳本sim.do文件:

#Build a new libraryvlib work

#Switch to the emulation source file directory

vlog +acc “tb_vending_machine.v”vlog +acc “vending_machine.v”

#Start simulation

vsim -voptargs=+acc work.tb_vending_machine

#Add all the signals on the top layeradd wave *#do wave.do

virtual type { {0x00 IDLE} {0x01 GET05} {0x02 GET10} {0x03 GET15}} FSM_TYPEvirtual function {(FSM_TYPE)/tb_vending_machine/u_mealy/st_cur} state1add wave u_mealy/st_curadd wave -color pink /tb_vending_machine/u_mealy/state1

view structureview signalsrun -all

仿真結(jié)果如下

FPGA開(kāi)源工作室

狀態(tài)機(jī)二進(jìn)制被文本所替代。

編輯:jq

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

    關(guān)注

    5

    文章

    175

    瀏覽量

    49467

原文標(biāo)題:Modelsim仿真--波形狀態(tài)機(jī)名稱顯示

文章出處:【微信號(hào):leezym0317,微信公眾號(hào):FPGA開(kāi)源工作室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    飛凌嵌入式ElfBoard-系統(tǒng)信息與資源之獲取系統(tǒng)主機(jī)名稱

    NULL。?EFAULT:name 指針指向無(wú)效內(nèi)存。?ENAMETOOLONG:主機(jī)名的長(zhǎng)度超過(guò)了 len。5.示例:(使用gethostname獲取系統(tǒng)主機(jī)名稱)#include
    發(fā)表于 01-13 09:01

    如何使用Modelsim仿真I2C控制器

    ModelSim是Model Technology(Mentor Graphics的子公司)的HDL硬件描述語(yǔ)言的仿真軟件。該軟件可以用來(lái)實(shí)現(xiàn)對(duì)設(shè)計(jì)的VHDL、Verilog HDL 或是兩種語(yǔ)言
    的頭像 發(fā)表于 01-10 14:14 ?5607次閱讀
    如何使用<b class='flag-5'>Modelsim</b><b class='flag-5'>仿真</b>I2C控制器

    睿遠(yuǎn)研究院丨IO-Link規(guī)范解讀(十一):ISDU狀態(tài)機(jī)與EVENT事件

    上篇我們介紹了ISDU的典型編碼格式和應(yīng)用案例,本篇我們就來(lái)詳細(xì)介紹下,ISDU的狀態(tài)機(jī),并把EVENT事件的邏輯,給大家好好解析下。 1主站ISDU狀態(tài)機(jī) 如上圖所示,ISDU的狀態(tài)機(jī)的核心
    的頭像 發(fā)表于 11-29 18:28 ?4899次閱讀
    睿遠(yuǎn)研究院丨IO-Link規(guī)范解讀(十一):ISDU<b class='flag-5'>狀態(tài)機(jī)</b>與EVENT事件

    什么是狀態(tài)機(jī)?

    什么是狀態(tài)機(jī)狀態(tài)機(jī)(state machine)有5個(gè)要素: 狀態(tài)(state) 遷移(transition) 事件(event) 動(dòng)作(action) 條件(guard) 狀態(tài)
    發(fā)表于 11-27 08:15

    嵌入式開(kāi)發(fā)為何經(jīng)常用到狀態(tài)機(jī)架構(gòu)

    一個(gè)管腳電平跳變或者一個(gè)串口數(shù)據(jù),讓整個(gè)程序都不動(dòng)的情況也讓我非常糾結(jié),如果事件一直不發(fā)生電平跳變,你要等到世界末日么? 如果應(yīng)用狀態(tài)機(jī)編程思想,程序只需要用全局變量記錄下工作狀態(tài),就可以轉(zhuǎn)頭去干別的
    發(fā)表于 11-25 07:08

    【產(chǎn)品介紹】Modelsim:HDL語(yǔ)言仿真軟件

    概述ModelSim是業(yè)界最優(yōu)秀的HDL語(yǔ)言仿真軟件,它能提供友好的仿真環(huán)境,是業(yè)界唯一的單內(nèi)核支持VHDL和Verilog混合仿真仿真
    的頭像 發(fā)表于 11-13 11:41 ?669次閱讀
    【產(chǎn)品介紹】<b class='flag-5'>Modelsim</b>:HDL語(yǔ)言<b class='flag-5'>仿真</b>軟件

    睿遠(yuǎn)研究院丨IO-Link規(guī)范解讀(六):主從站狀態(tài)機(jī)解析

    前言 書(shū)接上文,今天我們就來(lái)好好聊聊主從站的DL-Mode狀態(tài)機(jī),還請(qǐng)各位童鞋前排坐好! 1主站狀態(tài)機(jī)解析 主站的DL-Mode狀態(tài)機(jī)有5個(gè)大狀態(tài),也是我們很熟悉的 建立通信、開(kāi)始、預(yù)
    的頭像 發(fā)表于 10-28 17:34 ?6362次閱讀
    睿遠(yuǎn)研究院丨IO-Link規(guī)范解讀(六):主從站<b class='flag-5'>狀態(tài)機(jī)</b>解析

    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)33:初始化功能驗(yàn)證與分析

    BAR 空間。(1) 系統(tǒng)初始化功能測(cè)試結(jié)果系統(tǒng)初始化正常功能仿真波形如圖1所示, 系統(tǒng)初始化狀態(tài)機(jī)(init_state) 值對(duì)應(yīng)狀態(tài)為: 0 對(duì)應(yīng)空閑
    發(fā)表于 10-08 08:02

    如何在示波器上顯示波形

    在示波器上捕獲和分析未知波形的任務(wù),可能是日常操作,也可能像在黑暗中拍攝一樣困難。在許多情況下,采取有條不紊的方法設(shè)置示波器,將有助于捕獲穩(wěn)定的波形。
    的頭像 發(fā)表于 09-04 14:06 ?2593次閱讀
    如何在示波器上<b class='flag-5'>顯示</b><b class='flag-5'>波形</b>

    vivado仿真時(shí)GSR信號(hào)的影響

    利用vivado進(jìn)行設(shè)計(jì)xilinx FPGA時(shí),寫完設(shè)計(jì)代碼和仿真代碼后,點(diǎn)擊run simulation(啟動(dòng)modelsim進(jìn)行仿真)。
    的頭像 發(fā)表于 08-30 14:22 ?1555次閱讀
    vivado<b class='flag-5'>仿真</b>時(shí)GSR信號(hào)的影響

    請(qǐng)問(wèn)如何在FX10上使用GPIF III狀態(tài)機(jī) *.h 文件?

    LVCMOS 2 位 SlaveFIFO GPIF III 狀態(tài)機(jī)的演示中有一個(gè) cy_gpif_header_lvcmos.h 文件。 我想知道如何使用.h文件,只需放入.h文件放入 FX10 項(xiàng)目? 您有它的用戶指南文檔嗎?
    發(fā)表于 07-16 08:17

    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)之八:PCIe初始化狀態(tài)機(jī)設(shè)計(jì)

    PCIe配置初始化狀態(tài)機(jī)實(shí)現(xiàn)PCIe設(shè)備枚舉和配置空間初始化過(guò)程,在完成鏈路訓(xùn)練后,使用DFS(深度優(yōu)先搜索)算法枚舉PCIe總線上的設(shè)備,完成PCIe總線域的地址分配和設(shè)備的初始化。PCIe配置
    發(fā)表于 07-05 22:00

    有可能在 FX3 GPIF2 中創(chuàng)建兩個(gè)獨(dú)立的狀態(tài)機(jī)嗎?

    我想,如果我想通過(guò) FX3 GPIF2 創(chuàng)建兩個(gè)獨(dú)立的傳輸流接口,我需要在 GPIF2 設(shè)計(jì)器中創(chuàng)建兩個(gè)獨(dú)立的狀態(tài)機(jī),我是否有可能在 GPIF2 設(shè)計(jì)器中創(chuàng)建兩個(gè)獨(dú)立的狀態(tài)機(jī)?
    發(fā)表于 05-20 06:14

    cypress3014視頻格式改變的話,GPIF狀態(tài)機(jī)需不需要重新配置?

    你好,請(qǐng)問(wèn)視頻格式改變的話,GPIF狀態(tài)機(jī)需不需要重新配置
    發(fā)表于 05-14 07:28

    求助,關(guān)于srammaster.cydsn中狀態(tài)機(jī)的問(wèn)題求解

    晚上好。 我目前正在學(xué)習(xí) GPIF II。 查看..EZ-USB FX3 SDK1.3firmwaregpif_examplescyfxsrammastersrammaster.cydsn中的狀態(tài)機(jī),有狀態(tài)START和START1。 這意味著什么?
    發(fā)表于 05-12 06:20