




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于Verilog 的任意模長可加減計數(shù)器設(shè)計一、 設(shè)計要求計數(shù)器是一種在時鐘的觸發(fā)下,完成計數(shù)功能的時序邏輯電路,輸出結(jié)果由輸入時鐘和計數(shù)器上一狀態(tài)的計數(shù)共同決定。本設(shè)計要求實現(xiàn)的計數(shù)器,具有以下功能:(1) 要求實現(xiàn)計數(shù)器工作狀態(tài)的控制;(2) 要求實現(xiàn)計數(shù)器的異步清零功能;(3) 要求實現(xiàn)計數(shù)器遞增和遞減的功能;(4) 要求實現(xiàn)計數(shù)器的計數(shù)范圍(模長)任意改變;二、 設(shè)計思路計數(shù)器工作狀態(tài)的控制,可以設(shè)計一個使能端,在外部時鐘的觸發(fā)下,只有當(dāng)使能端信號有效(高電平),才啟動計數(shù)器的計數(shù)功能(遞增或遞減),否則計數(shù)器輸出結(jié)果不變。計數(shù)器的異步清零功能,可以設(shè)計一個外部輸入的清零端,在外部輸
2、入信號有效(低電平)的情況下,直接清零計數(shù)器,不用等待下一個外部時鐘的觸發(fā),即計數(shù)器的清零是異步的。計數(shù)器計數(shù)方向的控制,設(shè)計一個加減可控的信號端口,在時鐘的觸發(fā)、異步清零無效以及計數(shù)器使能端有效的情況下,該輸入端為高電平則計數(shù)器完成遞增功能,低電平則完成遞減功能。實現(xiàn)計數(shù)器的任意模長,即進入下一個計數(shù)周期,其計數(shù)的最大值可以發(fā)生變化。設(shè)計一個4位(最大模長為16)的輸入端口,可以在當(dāng)前計數(shù)周期結(jié)束,即計數(shù)器產(chǎn)生一個溢出信號的同時,判斷該端口輸入的信號是否發(fā)生變化,通過相鄰兩個計數(shù)周期的端口數(shù)據(jù)作異或運算,結(jié)果為高電平則代表模長發(fā)生變化,即進入的下一個計數(shù)周期,其計數(shù)最大值要發(fā)生變化。三、 程
3、序設(shè)計本次設(shè)計使用的是Quartus 11.0開發(fā)環(huán)境,該軟件沒有自帶仿真功能(9.0版本以后都沒自帶),需要使用第三方的Modelsim軟件,故本設(shè)計的程序包括計數(shù)器的Verilog設(shè)計以及仿真測試需要的testbench激勵文件兩部分。計數(shù)器的Verilog設(shè)計:module Prj(clk,rst_input,en,add_sub,data_input,full,data_output);input clk; / 外部時鐘input rst_input; / 外部清零(異步)input en; / 計數(shù)使能input add_sub; / 計數(shù)方向input 3:0 data_input
4、; / 計數(shù)器模長輸入output reg full; / 計完當(dāng)前模長output 3:0 data_output; / 計數(shù)器輸出reg 3:0 current_counter;/ 當(dāng)前計數(shù)值(輸出)reg update_length_en; / 改變模長的使能信號/ 當(dāng)前計數(shù)周期與上個計數(shù)周期的模長輸入reg 3:0 current_clk_data_input,last_clk_data_in put;reg 3:0 counter_length; / 下個計數(shù)周期的模長reg 1:0 k;always (posedge clk,negedge rst_input)beginif(!r
5、st_input) / 異步清零beginfull=0;current_counter=0;endelse if(en) / 計數(shù)使能begin if(add_sub) / 加法器beginif(current_counter<(counter_length-1) begin current_counter=current_counter+1;full=0;endelse / 加法器計數(shù)完產(chǎn)生full脈沖以觸發(fā)/ 判斷下個計數(shù)周期的模長是否變化begincurrent_counter=0;full=1; /full輸出 endendelse / 減法器beginif(current_co
6、unter>0)begincurrent_counter=current_counter-1;full=0;endelse / 減法器計數(shù)完begin current_counter=counter_length-1;full=1;endendendend/驅(qū)動當(dāng)前計數(shù)輸出assign data_output=current_counter;initialbegink=1; / k=1 表示啟動計數(shù)器的第一個計數(shù)周期endalways (posedge full) / 加法器/減法器完成當(dāng)前周期計數(shù)/ 計完當(dāng)前周期(即full有效)才更新begin last_clk_data_input
7、<=data_input; / 上個周期的模長current_clk_data_input=data_input;/當(dāng)前周期的模長update_length_en<=last_clk_data_inputcurrent_clk_data_input; / update_length_en為更新計數(shù)器模長的使能端,/ 異或運算 使能端為0代表模長變化 1不變k=k+1; / k的初值為1,k變化說明計數(shù)模長更改過了if(k=2'd3)k=2;endalways (posedge clk)beginif(update_length_en) / 使能有效計數(shù)模長變化counter
8、_length=current_clk_data_input; elsebeginif(k>=2)/ 下個周期計數(shù)器模長不變(保持上次更改的)counter_length=last_clk_data_input; if(k=1)/ 整個計數(shù)器系統(tǒng),最初的模長(一次沒更改過)counter_length=data_input; endendendmodule測試激勵文件testbench:timescale 1 ps/ 1 psmodule Prj_vlg_tst();reg add_sub;reg clk;reg 3:0 data_input;reg en;reg rst_input;
9、wire 3:0 data_output;wire full; Prj i1 (.add_sub(add_sub),.clk(clk),.data_input(data_input),.data_output(data_output),.en(en),.full(full),.rst_input(rst_input);parameter clk_period=10; / 時鐘周期initial / 初始化使能端、清零端和時鐘信號 begin en=1;rst_input=1;clk=1;#(46*clk_period) en=0;#(3*clk_period) en=1;#(4*clk_per
10、iod) rst_input=0;#(2*clk_period) rst_input=1;endalways #(clk_period/2) clk=clk; initialbegin/ 計數(shù)器模長分別為6 4 5 3/ 左邊為上一模長持續(xù)的時鐘個數(shù)data_input=4'b0110; #(22*clk_period) data_input=4'b0100;#(12*clk_period) data_input=4'b0101;#(12*clk_period) data_input=4'b0011;#(5*clk_period);endinitialbegin/ 計數(shù)器計數(shù)方向的改變/ 左邊為遞增遞減持續(xù)的時鐘個數(shù)add_sub=1;#(9*clk_period) add_sub=0;#(10*clk_period) add_sub=1;#(13*clk_period) add_sub=0;#(4*clk_period) add_sub=1;end endmodule四、 仿真結(jié)果如圖1所示,最開始計數(shù)器輸入的模長data_input為6,在計數(shù)方向控制端add_sub為高電平的情況下,可以從0計數(shù)到5,在add_sub為低電平的情況下,可以實現(xiàn)計數(shù)器的遞減;當(dāng)計數(shù)器模長data_input
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級公共安全行為規(guī)范計劃
- 光伏電站土建施工危險點識別及管理措施
- 高校學(xué)生干部個人學(xué)歷情況說明范文
- 幼兒園園長2025年節(jié)能環(huán)保工作總結(jié)及行動計劃
- 婦產(chǎn)科護士長崗位職責(zé)管理
- 融資租賃公司不良清收處置計劃
- 珠寶門店人員培訓(xùn)計劃
- 以形助數(shù)以數(shù)解形:高中數(shù)學(xué)數(shù)形結(jié)合解題教學(xué)的深度剖析與實踐
- 以平衡計分卡重塑C銀行客服中心績效體系:設(shè)計、應(yīng)用與革新
- 以學(xué)案為翼助力高中數(shù)學(xué)教學(xué)騰飛-基于多校實踐的深度剖析
- 電瓶車抵押給個人合同(2篇)
- 中國硫氰酸紅霉素市場供需現(xiàn)狀及投資戰(zhàn)略研究報告
- (一模)烏魯木齊地區(qū)2025年高三年級第一次質(zhì)量英語試卷(含答案)
- GB/T 6822-2024船體防污防銹漆體系
- 社會調(diào)查研究與方法-001-國開機考復(fù)習(xí)資料
- 2024年六西格瑪綠帶認(rèn)證考試練習(xí)題庫(含答案)
- 菏澤學(xué)院社會心理學(xué)(專升本)復(fù)習(xí)題
- 實驗室改造施工合同
- 2024敬老院護理經(jīng)理聘任協(xié)議
- 人工智能語言與倫理學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024年部編版九年級語文上冊電子課本(高清版)
評論
0/150
提交評論