0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

Verilog實(shí)現(xiàn)計(jì)數(shù)器在某個(gè)區(qū)間內(nèi)循環(huán)計(jì)數(shù),遞增遞減

鄒逸謙 ? 來源:鄒逸謙 ? 作者:鄒逸謙 ? 2022-04-07 17:33 ? 次閱讀

有時(shí)候在復(fù)雜系統(tǒng)設(shè)計(jì)的時(shí)候會(huì)用遇到讓“計(jì)數(shù)器在某個(gè)區(qū)間內(nèi)來回不停遞增遞減”的問題。

話不多說,我們直接上代碼。

以0-10的循環(huán)計(jì)數(shù)為例。

工具:Modelsim, VScode

1.準(zhǔn)備工作

首先在電腦上新建三個(gè)文件夾,SRC、TB以及SIM,用來放置源代碼、仿真文件以及仿真工程文件。

一定不要怕麻煩,特別是新手一定要注意代碼的分類工作!良好的分類能夠大大的提高工作效率。

剛接觸代碼量小,幾十行代碼一個(gè)文件就搞定了。但是隨著從業(yè)時(shí)間的增加,工作復(fù)雜度的提升,代碼的難度也會(huì)隨之提升,如果不做好分類管理,面對(duì)幾十個(gè)源代碼,十幾個(gè)仿真文件……崩潰是必然的。

請(qǐng)注意:一定不能有中文路徑?。?/p> poYBAGJOrDmARXC8AAA2ZMhSnLM789.png這樣是錯(cuò)誤的

pYYBAGJOrI6AVnMiAAA4VSHNhEg615.png應(yīng)該這樣修改

2.工程建立

  • 在src文件中添加一個(gè).v文件,名字自擬,最好能夠體現(xiàn)出文件的特性。
module test (
    input   sys_clk,
    input   rst_n,
   
);
    
    

    reg  flag;
    reg [7:0]  adc_data;
    
    always @(posedge sys_clk or negedge rst_n) begin
        if (~rst_n) 
            flag  <=  1'd0;
        else 
            case (flag)
                1'd0:
                    if (adc_data == 8'd9) // -1
                        flag  <=  1'd1;
                    else
                        flag  <=  1'd0;
                1'd1:
                    if (adc_data == 8'd1) // +1
                        flag  <=  1'd0;
                    else
                        flag  <=  1'd1;
                default: flag  <=  flag;
            endcase
    end

    always @(posedge sys_clk or negedge rst_n) begin
        if (~rst_n) begin
            adc_data  <=  8'd0;
        end
        else if (flag == 1'd0)
            adc_data  <=  adc_data + 8'd1;
        else if (flag == 1'd1)
            adc_data  <=  adc_data - 8'd1;
        else
            adc_data  <=  adc_data;
    end

    

endmodule 
  • 在tb文件夾中新建文件,給出仿真所需要的激勵(lì)。我們此次所需的只有時(shí)鐘和復(fù)位。時(shí)鐘設(shè)置為50Mhz,復(fù)位1000ns。
`timescale 1 ns /1 ps
module tb_test;
reg  sys_clk;
reg  rst_n;


test  u_tb_test(
    
    .sys_clk    (sys_clk),
    .rst_n      (rst_n)
    
);
  
   initial begin
   
     sys_clk  = 0;
   
     rst_n    = 0;
    #1000;
    rst_n  =  1;
    #20000;
   end
  always  #10  sys_clk = ~ sys_clk;

endmodule
  • 在sim文件夾中新建一個(gè)Modelsim仿真工程,添加src,tb中的文件,此過程不再展示。

3.仿真驗(yàn)證

仿真1us,觀察波形。實(shí)現(xiàn)了0-10直接的循環(huán)計(jì)數(shù),設(shè)計(jì)成功。

poYBAGJOr5qAFlL0AACTavGPYfo707.png

審核編輯:符乾江

聲明:本文內(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)注

    1643

    文章

    21974

    瀏覽量

    614349
  • 仿真分析
    +關(guān)注

    關(guān)注

    3

    文章

    106

    瀏覽量

    33883
收藏 0人收藏

    評(píng)論

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

    AN-831: 使用ADuC702x系列實(shí)現(xiàn)計(jì)數(shù)器

    電子發(fā)燒友網(wǎng)站提供《AN-831: 使用ADuC702x系列實(shí)現(xiàn)計(jì)數(shù)器.pdf》資料免費(fèi)下載
    發(fā)表于 01-14 16:28 ?0次下載
    AN-831: 使用ADuC702x系列<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>計(jì)數(shù)器</b>

    智能雷擊計(jì)數(shù)器的綜合行業(yè)解決方案

    智能雷擊計(jì)數(shù)器 是一種用于記錄雷擊事件發(fā)生次數(shù)的高科技裝置,廣泛應(yīng)用于防雷系統(tǒng)中。與傳統(tǒng)的機(jī)械式雷擊計(jì)數(shù)器相比,智能雷擊計(jì)數(shù)器不僅能夠精確記錄雷擊次數(shù),還能對(duì)雷電參數(shù)進(jìn)行分析,并通過智能通信模塊
    的頭像 發(fā)表于 12-20 10:50 ?446次閱讀
    智能雷擊<b class='flag-5'>計(jì)數(shù)器</b>的綜合行業(yè)解決方案

    獲取通信事件計(jì)數(shù)器與獲取通信事件記錄

    11功能碼主要用于獲取從設(shè)備通信計(jì)數(shù)器中的狀態(tài)字和事件計(jì)數(shù)的值,本功能碼不支持廣播模式。通過通信報(bào)文之前和之后讀取通信事件計(jì)數(shù)值,可以確定從設(shè)備是否正常處理報(bào)文。
    的頭像 發(fā)表于 11-05 15:16 ?2539次閱讀

    雷擊計(jì)數(shù)器的概述與應(yīng)用分析

    雷擊計(jì)數(shù)器 是一種用于監(jiān)測(cè)和記錄電力系統(tǒng)、通信系統(tǒng)、建筑物等關(guān)鍵設(shè)施遭受雷擊次數(shù)的設(shè)備。它能夠有效地幫助管理人員掌握雷電活動(dòng)的情況,以便進(jìn)行預(yù)防性維護(hù)和風(fēng)險(xiǎn)評(píng)估。雷擊計(jì)數(shù)器根據(jù)工作原理可以分為無源
    的頭像 發(fā)表于 10-21 10:31 ?712次閱讀
    雷擊<b class='flag-5'>計(jì)數(shù)器</b>的概述與應(yīng)用分析

    頻率計(jì)數(shù)器的技術(shù)原理和應(yīng)用場(chǎng)景

    的不斷涌現(xiàn),頻率計(jì)數(shù)器也將與這些技術(shù)相結(jié)合,實(shí)現(xiàn)更加智能化、網(wǎng)絡(luò)化的測(cè)量功能。例如,它可以通過與傳感、云計(jì)算等技術(shù)的結(jié)合,實(shí)現(xiàn)對(duì)遠(yuǎn)程信號(hào)的實(shí)時(shí)監(jiān)測(cè)和分析。綜上所述,頻率
    發(fā)表于 10-18 14:03

    74ls163是幾進(jìn)制同步計(jì)數(shù)器

    到9,然后回到0,形成一個(gè)循環(huán)。 以下是關(guān)于74LS163的一些基本信息: 功能 :74LS163 是一個(gè)同步計(jì)數(shù)器,意味著所有的計(jì)數(shù)位同時(shí)更新。它通常用于需要精確控制計(jì)數(shù)序列的應(yīng)用中
    的頭像 發(fā)表于 10-18 13:54 ?2562次閱讀

    激光塵埃粒子計(jì)數(shù)器如何使用能測(cè)出準(zhǔn)確的數(shù)據(jù)

    激光塵埃粒子計(jì)數(shù)器如何使用能測(cè)出準(zhǔn)確的數(shù)據(jù)
    的頭像 發(fā)表于 09-30 10:04 ?635次閱讀
    激光塵埃粒子<b class='flag-5'>計(jì)數(shù)器</b>如何使用能測(cè)出準(zhǔn)確的數(shù)據(jù)

    臺(tái)式塵埃粒子計(jì)數(shù)器的功能優(yōu)勢(shì)與應(yīng)用

    一、臺(tái)式塵埃粒子計(jì)數(shù)器的工作原理 臺(tái)式塵埃粒子計(jì)數(shù)器是用于測(cè)量空氣中塵埃顆粒物濃度的儀器,它基于激光散射原理能夠連續(xù)采集并計(jì)算單位體積內(nèi)空氣中不同粒徑的懸浮顆粒物個(gè)數(shù),即顆粒物濃度分布,進(jìn)而換算成為
    的頭像 發(fā)表于 09-14 16:41 ?747次閱讀

    智能防雷計(jì)數(shù)器行業(yè)應(yīng)用解決方案

    雷擊災(zāi)害作為一種常見的自然現(xiàn)象,會(huì)對(duì)建筑物、設(shè)備以及人類活動(dòng)產(chǎn)生嚴(yán)重影響,特別是電子設(shè)備廣泛應(yīng)用的今天,雷擊帶來的損失往往是巨大的。為了有效監(jiān)測(cè)和統(tǒng)計(jì)雷電活動(dòng)的頻率與強(qiáng)度,智能防雷計(jì)數(shù)器應(yīng)運(yùn)而生
    的頭像 發(fā)表于 09-12 10:46 ?597次閱讀
    智能防雷<b class='flag-5'>計(jì)數(shù)器</b>行業(yè)應(yīng)用解決方案

    正交解碼計(jì)數(shù)器

    正交解碼計(jì)數(shù)器
    發(fā)表于 09-06 11:41 ?0次下載

    計(jì)數(shù)器的特點(diǎn)和參數(shù)

    計(jì)數(shù)器作為一種常用的電子元件,電子設(shè)備和系統(tǒng)中扮演著至關(guān)重要的角色。它們不僅用于存儲(chǔ)和增減數(shù)字值,還廣泛應(yīng)用于時(shí)序和頻率測(cè)量、事件計(jì)數(shù)、控制步進(jìn)電機(jī)和伺服系統(tǒng)、錯(cuò)誤檢測(cè)和糾正以及計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)和操作等領(lǐng)域。以下將詳細(xì)闡述
    的頭像 發(fā)表于 08-29 14:54 ?2321次閱讀

    計(jì)數(shù)器同步和異步怎么判斷

    計(jì)數(shù)器同步和異步是數(shù)字電路設(shè)計(jì)中的一個(gè)重要概念,它們很多應(yīng)用場(chǎng)景中都扮演著關(guān)鍵角色。 一、計(jì)數(shù)器概述 計(jì)數(shù)器是一種常見的數(shù)字電路,它可以對(duì)輸入信號(hào)進(jìn)行
    的頭像 發(fā)表于 07-23 11:14 ?2435次閱讀

    PLC計(jì)數(shù)器的工作原理與功能

    至關(guān)重要的角色。計(jì)數(shù)器能夠統(tǒng)計(jì)輸入信號(hào)的脈沖次數(shù),實(shí)現(xiàn)對(duì)某個(gè)事件的計(jì)數(shù)和監(jiān)控,是控制系統(tǒng)實(shí)現(xiàn)精確控制的關(guān)鍵元件之一。本文將詳細(xì)闡述PLC中
    的頭像 發(fā)表于 06-18 11:51 ?3605次閱讀

    三菱PLC高速計(jì)數(shù)器的基本特點(diǎn)

    Controller,可編程邏輯控制)引入了高速計(jì)數(shù)器這一功能強(qiáng)大的軟元件,用于處理高速脈沖信號(hào),實(shí)現(xiàn)精確計(jì)數(shù)。本文將詳細(xì)介紹三菱PLC高速計(jì)數(shù)
    的頭像 發(fā)表于 06-18 11:46 ?2250次閱讀

    提升效率的利器——10進(jìn)制計(jì)數(shù)器的使用指南

    提供杰出的性能和便捷的操作體驗(yàn)。 一、直觀易用的操作界面 同步10進(jìn)制計(jì)數(shù)器的界面設(shè)計(jì)簡潔大方,用戶友好度很高。通過簡單的點(diǎn)擊操作,即可實(shí)現(xiàn)數(shù)字的快速增減。無論是錄入數(shù)據(jù)還是進(jìn)行復(fù)雜計(jì)算,都能一鍵完成,大大節(jié)省了
    的頭像 發(fā)表于 06-14 14:50 ?785次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品