国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

FPGA實(shí)戰(zhàn)演練邏輯篇42:寄存器電路的設(shè)計(jì)方式

發(fā)布時(shí)間:2015-6-26 11:27    發(fā)布者:rousong1989
寄存器電路的設(shè)計(jì)方式
本文節(jié)選自特權(quán)同學(xué)的圖書(shū)《FPGA設(shè)計(jì)實(shí)戰(zhàn)演練(邏輯篇)》
配套例程下載鏈接:http://pan.baidu.com/s/1pJ5bCtt
         上一章節(jié)中也已經(jīng)基本介紹了寄存器的基本原型,在現(xiàn)代邏輯設(shè)計(jì)中,時(shí)序邏輯設(shè)計(jì)是核心,而寄存器又是時(shí)序邏輯的基礎(chǔ)。因此,掌握時(shí)序邏輯的幾種常見(jiàn)代碼書(shū)寫(xiě)方式又是基礎(chǔ)中的基礎(chǔ)。下面我們就以圖文(代碼)并茂的方式來(lái)學(xué)習(xí)這些基本寄存器模型的代碼書(shū)寫(xiě)。(特權(quán)同學(xué),版權(quán)所有)
① 簡(jiǎn)單的寄存器輸入輸出的模型如圖5.2所示。每個(gè)時(shí)鐘信號(hào)clk的有效沿(通常是上升沿),輸入端數(shù)據(jù)din將被鎖存到輸出端dout。(特權(quán)同學(xué),版權(quán)所有)
圖5.2 基本寄存器
         基本的代碼書(shū)寫(xiě)方式如下:
// Verilog例程
module dff(clk, din, dout);
input clk;
input din;
output dout;
reg dout;
always @ (posedge clk) begin
         dout <=din;
end
endmodule
② 帶異步復(fù)位的寄存器輸入輸出的模型如圖5.3所示。每個(gè)時(shí)鐘信號(hào)clk的有效沿(通常是上升沿),輸入端數(shù)據(jù)din將被鎖存到輸出端dout;而異步復(fù)位信號(hào)clr的下降沿(低電平有效復(fù)位)將強(qiáng)制給輸出數(shù)據(jù)dout賦值為0(不論此時(shí)的輸入數(shù)據(jù)din取值),此輸出狀態(tài)將一直保持到clr拉高后的下一個(gè)clk有效觸發(fā)沿。(特權(quán)同學(xué),版權(quán)所有)
圖5.3 異步復(fù)位的寄存器
基本的代碼書(shū)寫(xiě)方式如下:
// Verilog例程
module dff(clk, rst_n, din, dout);
input clk;
input rst_n;
input din;
output dout;
reg dout;
always @ (posedge clk or negedge rst_n) begin
         if(!rst_n)dout <= 1'b0;
else dout <= din;
end
endmodule
③ 帶異步置位的寄存器輸入輸出的模型如圖5.4所示。每個(gè)時(shí)鐘信號(hào)clk的有效沿(通常是上升沿),輸入端數(shù)據(jù)din將被鎖存到輸出端dout;而異步置位信號(hào)set的上升沿(高電平有效置位)將強(qiáng)制給輸出數(shù)據(jù)dout賦值為1(不論此時(shí)的輸入數(shù)據(jù)din取值),此輸出狀態(tài)將一直保持到set拉低后的下一個(gè)clk有效觸發(fā)沿。(特權(quán)同學(xué),版權(quán)所有)
圖5.4 異步置位的寄存器
基本的代碼書(shū)寫(xiě)方式如下:
// Verilog例程
module dff(clk, set, din, dout);
input clk;
input din;
input set;
output dout;
reg dout;
always @ (posedge clk or posedge set) begin
         if(set) dout<= 1'b1;
         else dout<= din;
end
endmodule
④ 既帶異步復(fù)位,又帶異步置位的寄存器則如圖5.5所示。既帶異步復(fù)位,又帶異步置位的寄存器其實(shí)是個(gè)很矛盾的模型,我們可以簡(jiǎn)單的分析一下,如果set和clr都處于無(wú)效狀態(tài)(set=0,clr=1),那么寄存器正常工作;如果set有效(set=1)且clr無(wú)效(clr=1),那么dout=1沒(méi)有異議;同理,如果set無(wú)效(set=0)且clr有效(clr=0),那么dout=0也沒(méi)有異議;但是如果set和clr同時(shí)有效(set=1,clr=0),輸出dout咋辦?到底是1還是0?
圖5.5 異步復(fù)位和置位的寄存器
其實(shí)這個(gè)問(wèn)題也不難,設(shè)置一個(gè)優(yōu)先級(jí)不就好了。當(dāng)然了,圖5.5的理想寄存器模型通常只是作為電路的一部分來(lái)實(shí)現(xiàn)。如果我們期望這種既帶異步復(fù)位,又帶異步置位的寄存器在復(fù)位和置位同時(shí)出現(xiàn)時(shí),異步復(fù)位的優(yōu)先級(jí)高一些,那么代碼書(shū)寫(xiě)方式可以如下:
// Verilog例程
module dff(clk, rst_n, set, din, dout);
input clk;
input din;
input rst_n;
input set;
output dout;
reg dout;
always @ (posedge clk or negedge rst_n posedge set) begin
         if(!rst_n)dout <= 1’b0;
else if(set) dout <= 1'b1;
         else dout<= din;
end
endmodule
         這樣的代碼,綜合出來(lái)的寄存器視圖則如圖5.6所示。(特權(quán)同學(xué),版權(quán)所有)
圖5.6 異步復(fù)位和置位的寄存器(復(fù)位優(yōu)先級(jí)高)
⑤ 如圖5.7所示,這是一種很常見(jiàn)的帶同步使能功能的寄存器。每個(gè)時(shí)鐘clk的有效沿(通常是上升沿),判斷使能信號(hào)ena是否有效(我們?nèi)「唠娖綖橛行В趀na信號(hào)有效的情況下din的值才會(huì)輸出到dout信號(hào)上。(特權(quán)同學(xué),版權(quán)所有)
圖5.7 帶同步使能的寄存器
基本的代碼書(shū)寫(xiě)方式如下:
// Verilog例程
module dff(clk, ena, din, dout);
input clk;
input din;
input ena;
output dout;
reg dout;
always @ (posedge clk) begin
         if(ena) dout<= din;
end
endmodule

1.jpg (4.13 KB)

1.jpg
本文地址:http://m.4huy16.com/thread-150924-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專(zhuān)區(qū)
  • Microchip第22屆中國(guó)技術(shù)精英年會(huì)——采訪篇
  • 常見(jiàn)深度學(xué)習(xí)模型介紹及應(yīng)用培訓(xùn)教程
  • 電動(dòng)兩輪車(chē)設(shè)計(jì)生態(tài)系統(tǒng)
  • Microchip第22屆中國(guó)技術(shù)精英年會(huì)上海首站開(kāi)幕
  • 貿(mào)澤電子(Mouser)專(zhuān)區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表