版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于Verilog 的任意模長(zhǎng)可加減計(jì)數(shù)器設(shè)計(jì)一、 設(shè)計(jì)要求計(jì)數(shù)器是一種在時(shí)鐘的觸發(fā)下,完成計(jì)數(shù)功能的時(shí)序邏輯電路,輸出結(jié)果由輸入時(shí)鐘和計(jì)數(shù)器上一狀態(tài)的計(jì)數(shù)共同決定。本設(shè)計(jì)要求實(shí)現(xiàn)的計(jì)數(shù)器,具有以下功能:(1) 要求實(shí)現(xiàn)計(jì)數(shù)器工作狀態(tài)的控制;(2) 要求實(shí)現(xiàn)計(jì)數(shù)器的異步清零功能;(3) 要求實(shí)現(xiàn)計(jì)數(shù)器遞增和遞減的功能;(4) 要求實(shí)現(xiàn)計(jì)數(shù)器的計(jì)數(shù)范圍(模長(zhǎng))任意改變;二、 設(shè)計(jì)思路計(jì)數(shù)器工作狀態(tài)的控制,可以設(shè)計(jì)一個(gè)使能端,在外部時(shí)鐘的觸發(fā)下,只有當(dāng)使能端信號(hào)有效(高電平),才啟動(dòng)計(jì)數(shù)器的計(jì)數(shù)功能(遞增或遞減),否則計(jì)數(shù)器輸出結(jié)果不變。計(jì)數(shù)器的異步清零功能,可以設(shè)計(jì)一個(gè)外部輸入的清零端,在外部輸
2、入信號(hào)有效(低電平)的情況下,直接清零計(jì)數(shù)器,不用等待下一個(gè)外部時(shí)鐘的觸發(fā),即計(jì)數(shù)器的清零是異步的。計(jì)數(shù)器計(jì)數(shù)方向的控制,設(shè)計(jì)一個(gè)加減可控的信號(hào)端口,在時(shí)鐘的觸發(fā)、異步清零無(wú)效以及計(jì)數(shù)器使能端有效的情況下,該輸入端為高電平則計(jì)數(shù)器完成遞增功能,低電平則完成遞減功能。實(shí)現(xiàn)計(jì)數(shù)器的任意模長(zhǎng),即進(jìn)入下一個(gè)計(jì)數(shù)周期,其計(jì)數(shù)的最大值可以發(fā)生變化。設(shè)計(jì)一個(gè)4位(最大模長(zhǎng)為16)的輸入端口,可以在當(dāng)前計(jì)數(shù)周期結(jié)束,即計(jì)數(shù)器產(chǎn)生一個(gè)溢出信號(hào)的同時(shí),判斷該端口輸入的信號(hào)是否發(fā)生變化,通過(guò)相鄰兩個(gè)計(jì)數(shù)周期的端口數(shù)據(jù)作異或運(yùn)算,結(jié)果為高電平則代表模長(zhǎng)發(fā)生變化,即進(jìn)入的下一個(gè)計(jì)數(shù)周期,其計(jì)數(shù)最大值要發(fā)生變化。三、 程
3、序設(shè)計(jì)本次設(shè)計(jì)使用的是Quartus 11.0開(kāi)發(fā)環(huán)境,該軟件沒(méi)有自帶仿真功能(9.0版本以后都沒(méi)自帶),需要使用第三方的Modelsim軟件,故本設(shè)計(jì)的程序包括計(jì)數(shù)器的Verilog設(shè)計(jì)以及仿真測(cè)試需要的testbench激勵(lì)文件兩部分。計(jì)數(shù)器的Verilog設(shè)計(jì):module Prj(clk,rst_input,en,add_sub,data_input,full,data_output);input clk; / 外部時(shí)鐘input rst_input; / 外部清零(異步)input en; / 計(jì)數(shù)使能input add_sub; / 計(jì)數(shù)方向input 3:0 data_input
4、; / 計(jì)數(shù)器模長(zhǎng)輸入output reg full; / 計(jì)完當(dāng)前模長(zhǎng)output 3:0 data_output; / 計(jì)數(shù)器輸出reg 3:0 current_counter;/ 當(dāng)前計(jì)數(shù)值(輸出)reg update_length_en; / 改變模長(zhǎng)的使能信號(hào)/ 當(dāng)前計(jì)數(shù)周期與上個(gè)計(jì)數(shù)周期的模長(zhǎng)輸入reg 3:0 current_clk_data_input,last_clk_data_in put;reg 3:0 counter_length; / 下個(gè)計(jì)數(shù)周期的模長(zhǎng)reg 1:0 k;always (posedge clk,negedge rst_input)beginif(!r
5、st_input) / 異步清零beginfull=0;current_counter=0;endelse if(en) / 計(jì)數(shù)使能begin if(add_sub) / 加法器beginif(current_counter<(counter_length-1) begin current_counter=current_counter+1;full=0;endelse / 加法器計(jì)數(shù)完產(chǎn)生full脈沖以觸發(fā)/ 判斷下個(gè)計(jì)數(shù)周期的模長(zhǎng)是否變化begincurrent_counter=0;full=1; /full輸出 endendelse / 減法器beginif(current_co
6、unter>0)begincurrent_counter=current_counter-1;full=0;endelse / 減法器計(jì)數(shù)完begin current_counter=counter_length-1;full=1;endendendend/驅(qū)動(dòng)當(dāng)前計(jì)數(shù)輸出assign data_output=current_counter;initialbegink=1; / k=1 表示啟動(dòng)計(jì)數(shù)器的第一個(gè)計(jì)數(shù)周期endalways (posedge full) / 加法器/減法器完成當(dāng)前周期計(jì)數(shù)/ 計(jì)完當(dāng)前周期(即full有效)才更新begin last_clk_data_input
7、<=data_input; / 上個(gè)周期的模長(zhǎng)current_clk_data_input=data_input;/當(dāng)前周期的模長(zhǎng)update_length_en<=last_clk_data_inputcurrent_clk_data_input; / update_length_en為更新計(jì)數(shù)器模長(zhǎng)的使能端,/ 異或運(yùn)算 使能端為0代表模長(zhǎng)變化 1不變k=k+1; / k的初值為1,k變化說(shuō)明計(jì)數(shù)模長(zhǎng)更改過(guò)了if(k=2'd3)k=2;endalways (posedge clk)beginif(update_length_en) / 使能有效計(jì)數(shù)模長(zhǎng)變化counter
8、_length=current_clk_data_input; elsebeginif(k>=2)/ 下個(gè)周期計(jì)數(shù)器模長(zhǎng)不變(保持上次更改的)counter_length=last_clk_data_input; if(k=1)/ 整個(gè)計(jì)數(shù)器系統(tǒng),最初的模長(zhǎng)(一次沒(méi)更改過(guò))counter_length=data_input; endendendmodule測(cè)試激勵(lì)文件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; / 時(shí)鐘周期initial / 初始化使能端、清零端和時(shí)鐘信號(hào) 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/ 計(jì)數(shù)器模長(zhǎng)分別為6 4 5 3/ 左邊為上一模長(zhǎng)持續(xù)的時(shí)鐘個(gè)數(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/ 計(jì)數(shù)器計(jì)數(shù)方向的改變/ 左邊為遞增遞減持續(xù)的時(shí)鐘個(gè)數(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所示,最開(kāi)始計(jì)數(shù)器輸入的模長(zhǎng)data_input為6,在計(jì)數(shù)方向控制端add_sub為高電平的情況下,可以從0計(jì)數(shù)到5,在add_sub為低電平的情況下,可以實(shí)現(xiàn)計(jì)數(shù)器的遞減;當(dāng)計(jì)數(shù)器模長(zhǎng)data_input
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度公路建設(shè)廉政承諾及交通安全管理合同3篇
- 二零二五年度帶物業(yè)費(fèi)結(jié)算與社區(qū)配套的二手房屋個(gè)人買(mǎi)賣(mài)合同3篇
- 二零二五年度智能家居生活體驗(yàn)個(gè)人住房租賃服務(wù)協(xié)議3篇
- 遠(yuǎn)程監(jiān)控技術(shù)課程設(shè)計(jì)
- 應(yīng)用文啟事課程設(shè)計(jì)
- 二零二五年度市場(chǎng)營(yíng)銷(xiāo)戰(zhàn)略合同3篇
- 二零二五年度公路運(yùn)輸物流信息化平臺(tái)建設(shè)合同3篇
- 英國(guó)文物修復(fù)課程設(shè)計(jì)
- 2025年度生豬養(yǎng)殖與電子商務(wù)平臺(tái)合作合同3篇
- 二零二五年度新型城鎮(zhèn)化項(xiàng)目配套基礎(chǔ)設(shè)施建設(shè)國(guó)有土地租賃合同3篇
- 2023-2024學(xué)年廣東省廣州市海珠區(qū)九年級(jí)(上)期末英語(yǔ)試卷
- 紅色蛇年大吉年終總結(jié)匯報(bào)
- 農(nóng)業(yè)機(jī)械培訓(xùn)課件
- 河南省鄭州市2023-2024學(xué)年高二上學(xué)期期末考試英語(yǔ)試題 附答案
- 2024年度心理輔導(dǎo)合作協(xié)議模板版
- GB/T 22723-2024天然氣能量的測(cè)定
- 能源崗位招聘筆試題與參考答案(某大型國(guó)企)2024年
- 航空與航天學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 麻醉蘇醒期躁動(dòng)患者護(hù)理
- 英語(yǔ)雅思8000詞匯表
- 2024年《13464電腦動(dòng)畫(huà)》自考復(fù)習(xí)題庫(kù)(含答案)
評(píng)論
0/150
提交評(píng)論