有時候在復雜系統設計的時候會用遇到讓“計數器在某個區間內來回不停遞增遞減”的問題。
話不多說,我們直接上代碼。
以0-10的循環計數為例。
工具:Modelsim, VScode
1.準備工作
首先在電腦上新建三個文件夾,SRC、TB以及SIM,用來放置源代碼、仿真文件以及仿真工程文件。
一定不要怕麻煩,特別是新手一定要注意代碼的分類工作!良好的分類能夠大大的提高工作效率。
剛接觸代碼量小,幾十行代碼一個文件就搞定了。但是隨著從業時間的增加,工作復雜度的提升,代碼的難度也會隨之提升,如果不做好分類管理,面對幾十個源代碼,十幾個仿真文件……崩潰是必然的。
請注意:一定不能有中文路徑!!


2.工程建立
- 在src文件中添加一個.v文件,名字自擬,最好能夠體現出文件的特性。
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文件夾中新建文件,給出仿真所需要的激勵。我們此次所需的只有時鐘和復位。時鐘設置為50Mhz,復位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文件夾中新建一個Modelsim仿真工程,添加src,tb中的文件,此過程不再展示。
3.仿真驗證
仿真1us,觀察波形。實現了0-10直接的循環計數,設計成功。

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
FPGA
+關注
關注
1643文章
21957瀏覽量
614033 -
仿真分析
+關注
關注
3文章
106瀏覽量
33875
發布評論請先 登錄
相關推薦
熱點推薦
智能雷擊計數器的綜合行業解決方案
智能雷擊計數器 是一種用于記錄雷擊事件發生次數的高科技裝置,廣泛應用于防雷系統中。與傳統的機械式雷擊計數器相比,智能雷擊計數器不僅能夠精確記錄雷擊次數,還能對雷電參數進行分析,并通過智能通信模塊

雷擊計數器的概述與應用分析
雷擊計數器 是一種用于監測和記錄電力系統、通信系統、建筑物等關鍵設施遭受雷擊次數的設備。它能夠有效地幫助管理人員掌握雷電活動的情況,以便進行預防性維護和風險評估。雷擊計數器根據工作原理可以分為無源

74ls163是幾進制同步計數器
到9,然后回到0,形成一個循環。 以下是關于74LS163的一些基本信息: 功能 :74LS163 是一個同步計數器,意味著所有的計數位同時更新。它通常用于需要精確控制計數序列的應用中
臺式塵埃粒子計數器的功能優勢與應用
一、臺式塵埃粒子計數器的工作原理 臺式塵埃粒子計數器是用于測量空氣中塵埃顆粒物濃度的儀器,它基于激光散射原理能夠連續采集并計算單位體積內空氣中不同粒徑的懸浮顆粒物個數,即顆粒物濃度分布,進而換算成為
計數器的特點和參數
計數器作為一種常用的電子元件,在電子設備和系統中扮演著至關重要的角色。它們不僅用于存儲和增減數字值,還廣泛應用于時序和頻率測量、事件計數、控制步進電機和伺服系統、錯誤檢測和糾正以及計算機數據存儲和操作等領域。以下將詳細闡述
計數器同步和異步怎么判斷
計數器同步和異步是數字電路設計中的一個重要概念,它們在很多應用場景中都扮演著關鍵角色。 一、計數器概述 計數器是一種常見的數字電路,它可以對輸入信號進行
PLC計數器的工作原理與功能
至關重要的角色。計數器能夠統計輸入信號的脈沖次數,實現對某個事件的計數和監控,是控制系統實現精確控制的關鍵元件之一。本文將詳細闡述PLC中
三菱PLC高速計數器的基本特點
Controller,可編程邏輯控制器)引入了高速計數器這一功能強大的軟元件,用于處理高速脈沖信號,實現精確計數。本文將詳細介紹三菱PLC高速計數
提升效率的利器——10進制計數器的使用指南
提供杰出的性能和便捷的操作體驗。 一、直觀易用的操作界面 同步10進制計數器的界面設計簡潔大方,用戶友好度很高。通過簡單的點擊操作,即可實現數字的快速增減。無論是錄入數據還是進行復雜計算,都能一鍵完成,大大節省了
SN74HC193-Q1 4位同步遞增/遞減計數器數據表
電子發燒友網站提供《SN74HC193-Q1 4位同步遞增/遞減計數器數據表.pdf》資料免費下載
發表于 06-04 10:46
?0次下載

SN54LS668、SN54LS669、SN74LS668、sn74ls669同步4位遞增/遞減計數器數據表
電子發燒友網站提供《SN54LS668、SN54LS669、SN74LS668、sn74ls669同步4位遞增/遞減計數器數據表.pdf》資料免費下載
發表于 06-04 10:40
?0次下載

SN54LS696、SN54LS697、SN54LS699、SN74LS696、SN74LS697、sn74ls 699同步遞增/遞減計數器手冊
電子發燒友網站提供《SN54LS696、SN54LS697、SN54LS699、SN74LS696、SN74LS697、sn74ls 699同步遞增/遞減計數器手冊.pdf》資料免費下載
發表于 06-04 10:38
?0次下載

評論