<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 硬件描述語(yǔ)言Verilog HDL設計進(jìn)階之:自動(dòng)轉換量程頻率計控制器

硬件描述語(yǔ)言Verilog HDL設計進(jìn)階之:自動(dòng)轉換量程頻率計控制器

作者: 時(shí)間:2017-06-05 來(lái)源:網(wǎng)絡(luò ) 收藏

4.7典型實(shí)例7:自動(dòng)轉換量程

4.7.1實(shí)例內容及目標

1.實(shí)例內容

本實(shí)例使用設計一個(gè)可自動(dòng)轉換量程的。在設計過(guò)程中,使用了狀態(tài)機的設計方法,讀者可根據綜合實(shí)例6的流程將本實(shí)例的語(yǔ)言設計模塊添加到自己的工程中。

本文引用地址:http://dyxdggzs.com/article/201706/348828.htm

2.實(shí)例目標

通過(guò)本實(shí)例,讀者應達到下面的目的。

·掌握使用Verilog設計狀態(tài)機的方法。

·掌握Verilog設計的一般方法。

4.7.2原理簡(jiǎn)介

頻率計是電路調試里面常常用到的一種儀器。本實(shí)例提到的自動(dòng)轉換量程并不是講解如何設計一個(gè)頻率計,而是講解如何設計這個(gè)頻率計的量程轉換機制。通過(guò)Verilog語(yǔ)言設計將量程轉換變成自動(dòng)化,自適應地將輸入反映至量程上。

此自動(dòng)轉換量程頻率計需要外部提供一個(gè)超量程信號和一個(gè)欠量程信號,代表輸入比當前量程的狀態(tài)。這兩個(gè)信號可以通過(guò)其他的模塊或者裝置獲得,讀者可自行分析。

同時(shí),該頻率計還向外部提供一個(gè)用于選擇標準時(shí)基的信號。通過(guò)該信號,頻率計可以完成量程的切換和顯示。讀者可根據頻率計其他模塊的需要調整輸出信號的設計。

4.7.3代碼分析

下面給出自動(dòng)轉換量程頻率計控制器的Verilog源代碼,首先介紹端口信號的定義及說(shuō)明,讀者可以通過(guò)這些端口將此控制器模塊實(shí)例化至自己的工程設計中。

·clk:輸入時(shí)鐘。

·clear:異步復位信號。

·reset:用來(lái)在量程轉換開(kāi)始時(shí)復位計數器。

·std_f_sel:用來(lái)選擇標準時(shí)基。

·cntover:代表超量程。

·cntlow:代表欠量程。

module control(std_f_sel,reset,clk,clear,cntover,cntlow);
//端口說(shuō)明
output[1:0] std_f_sel;
output reset;
input clk,clear,cntover,cntlow;

//內部信號說(shuō)明
reg[1:0] std_f_sel;
reg reset;
reg[5:0] present,next; //用于保存當前狀態(tài)和次態(tài)的中間變量

//狀態(tài)編碼,采用獨熱碼
parameter start_fl00k = 6b000001, //狀態(tài)A
fl00k_cnt = 6b000010, //狀態(tài)B
start_fl0k = 6b000100, //狀態(tài)C
fl0k_cn = 6b001000, //狀態(tài)D
start_flk = 6b010000, //狀態(tài)E
flk_cnt = 6b100000; //狀態(tài)F

always @(posedge clk or posedge clear) begin
if(clear)
present=start_fl0k; //異步復位至start_fl0k狀態(tài)
else
present=next; //狀態(tài)轉換
end

always @(present or cntover or cntlow) begin //狀態(tài)轉換的觸發(fā)信號列表
case(present) //用case語(yǔ)句描述狀態(tài)轉換
start_fl00k: //100k量程狀態(tài)
next=fl00k_cnt;
fl00k_cnt: begin //100k量程控制狀態(tài)
if(cntlow) //欠量程
next=start_fl0k; //進(jìn)入10k量程狀態(tài)
else
next=fl00k_cnt; //保持100k量程控制狀態(tài)
end
start_fl0k: //10k量程狀態(tài)
next=fl0k_cnt;
fl0k_cnt: begin //10k量程控制狀態(tài)
if(cntlow) //欠量程
next=start_flk; //進(jìn)入1k量程狀態(tài)
else if(cntover) //過(guò)量程
next=start_fl00k; //進(jìn)入100k量程狀態(tài)
else
next=fl0k_cnt; //保持1k量程控制狀態(tài)
end
start_flk: //1k量程狀態(tài)
next=flk_cnt;
flk_cnt: begin //1k量程控制狀態(tài)
if(cntover) //過(guò)量程
next=start_fl0k; //進(jìn)入10k量程狀態(tài)
else
next=flk_cnt; //保持1k量程控制狀態(tài)
end
default:
next=start_fl0k; //缺省狀態(tài)為10k量程狀態(tài)
endcase
end

//各狀態(tài)的輸出控制模塊
always @(present) begin
case(present)
start_fl00k: begin //100k量程狀態(tài)輸出控制
reset=1;
std_f_sel=2b00;
end
fl00k_cnt: begin //100k量程控制狀態(tài)輸出控制
reset=0;
std_f_sel=2b00;
end
start_fl0k: begin //10k量程狀態(tài)輸出控制
reset=1;
std_f_sel=2b01;
end
fl0k_cnt: begin //10k量程控制狀態(tài)輸出控制
reset=0;
std_f_sel=2b01;
end
start_flk: begin //1k量程狀態(tài)輸出控制
reset=1;
std_f_sel=2b11;
end
flk_cnt: begin //1k量程控制狀態(tài)輸出控制
reset=0;
std_f_sel=2b11;
end
default: begin //默認(10k量程)狀態(tài)輸出控制
reset=1;
std_f_sel=2b01;
end
endcase
end
endmodule

在狀態(tài)機設計中,常常將狀態(tài)轉換和狀態(tài)輸出控制分為兩個(gè)部分進(jìn)行設計,方便語(yǔ)言的編寫(xiě)修改和讀寫(xiě)規則。在下面的源代碼中讀者應該注意這個(gè)設計的特點(diǎn)。

4.7.4參考設計

本實(shí)例相關(guān)參考設計文件在本書(shū)實(shí)例代碼的“典型實(shí)例7”文件夾。



關(guān)鍵詞: VerilogHDL 頻率計控制器 FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>