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

勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載36:Verilog代碼風(fēng)格之寄存器電路的設(shè)計方式

發(fā)布時間:2018-1-2 20:03    發(fā)布者:rousong1989
勇敢的芯伴你玩轉(zhuǎn)Altera FPGA連載36Verilog代碼風(fēng)格之寄存器電路的設(shè)計方式
特權(quán)同學(xué),版權(quán)所有
配套例程和更多資料下載鏈接:
http://pan.baidu.com/s/1i5LMUUD

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

本文地址:http://m.4huy16.com/thread-521549-1-1.html     【打印本頁】

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

廠商推薦

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