當(dāng)前位置:首頁 > 模擬 > 模擬技術(shù)
[導(dǎo)讀]移位寄存器有不同的版本,可用于各種各樣的應(yīng)用程序。本文將向您介紹移位寄存器并說明它們的工作原理。此外,它還將解釋如何將它們用于將多條并行數(shù)據(jù)線轉(zhuǎn)換為單個(gè)串行連接。

移位寄存器有不同的版本,可用于各種各樣的應(yīng)用程序。本文將向您介紹移位寄存器并說明它們的工作原理。此外,它還將解釋如何將它們用于將多條并行數(shù)據(jù)線轉(zhuǎn)換為單個(gè)串行連接。

什么是移位寄存器?

移位寄存器是存儲(chǔ)單個(gè)數(shù)據(jù)字的同步器件,可以對(duì)這些位執(zhí)行邏輯移位操作。邏輯移位將字的每個(gè)位向左或向右移動(dòng)??崭裢ǔS昧闾畛洌?

上圖顯示了向左的邏輯移位。右移以類似的方式工作。

移位寄存器由幾個(gè)單位鎖存器組成它們以串行菊花鏈方式連接,以便一個(gè)鎖存器的輸出連接到下一個(gè)輸入:

有些變速器允許您選擇這些位將被移動(dòng)。

移位寄存器的類型

通常,有四種不同類型的移位寄存器可用數(shù)據(jù)輸入和輸出設(shè)備的方式不同:

串行輸入,串行輸出

串行輸入,并行輸出

并行輸入,串行輸出

并行輸入,并行輸出

串行和并行類型通常同步運(yùn)行,因此您需要時(shí)鐘信號(hào)處理數(shù)據(jù)。

支持串行和并行輸入的寄存器,如以及串行和并行輸出,被稱為通用移位寄存器。

基本操作

我們假設(shè)我們有以下理論4位移位寄存器同時(shí)具有串行輸入和輸出以及并行輸出:

如您所見,每個(gè)位從右側(cè)的串行輸入加載到移位寄存器的D鎖存器中。

第一個(gè)時(shí)鐘周期將其加載到鎖存器A中。然后鎖存器的輸出具有加載到寄存器中的值。 。下一個(gè)時(shí)鐘周期設(shè)置第二個(gè)鎖存器值并將一個(gè)新位加載到第一個(gè)鎖存器中,從而將位從右向左移位。這與所有寄存器同時(shí)發(fā)生。最后一個(gè)鎖存器輸出是移位寄存器的串行輸出。

因此,串行移位器可以用作緩沖器。上面的移位器也可用于將串行信號(hào)轉(zhuǎn)換為四條并行數(shù)據(jù)線。

與串行轉(zhuǎn)換并行

此技術(shù)可用于減少從并行總線讀取值所需的輸入數(shù)量。例如,您可以利用它將來自計(jì)算機(jī)鍵盤的信號(hào)轉(zhuǎn)換為USB控制器可以理解的單個(gè)串行信號(hào)。在本例中,我使用DIP開關(guān)來模擬8位數(shù)據(jù)總線,并使用Arduino Uno上的單個(gè)GPIO引腳讀取8個(gè)值:

請(qǐng)注意,橙色和黃色總線實(shí)際上可能無法連接成一條線。我決定以這種方式代表他們以使圖像更容易理解:

Arduino控制移位寄存器,產(chǎn)生時(shí)鐘信號(hào),并讀取8位。然后輸出值:

結(jié)論

移位寄存器是一個(gè)由幾個(gè)D鎖存器組成的同步器件,它實(shí)現(xiàn)了數(shù)字電路中的邏輯移位功能。這些IC可用于各種應(yīng)用。然而,它們通常用于將串行數(shù)據(jù)線轉(zhuǎn)換為并行總線,反之亦然。使用它們時(shí),您必須記住,有不同類型可用于不同目的。

移位寄存器(左移、右移、雙向)的Verilog實(shí)現(xiàn)

移位寄存器的功能和電路形式較多,按移位方向分有左移、右移、和雙向移位寄存器;按接收數(shù)據(jù)方式分為串行輸入和并行輸入;按輸出方向分為串行輸出和并行輸出。

如果將若干個(gè)觸發(fā)器級(jí)聯(lián)成如下圖所示電路,則構(gòu)成基本的移位寄存器。圖中是一個(gè)4位移位寄存器,串行二進(jìn)制數(shù)據(jù)從輸入端Dsi輸入,左邊觸發(fā)器的輸出作為右鄰觸發(fā)器的數(shù)據(jù)輸入。若將串行數(shù)碼D3D2D1D0從高位(D3)至低位(D0)按時(shí)鐘脈沖間隔依次送到Dsi端,經(jīng)過第一個(gè)時(shí)鐘脈沖后,Q0=D3。由于跟隨D3后面的是D2,因此經(jīng)過第二個(gè)時(shí)鐘脈沖后,觸發(fā)器FF0的狀態(tài)移入觸發(fā)器FF1而FF0轉(zhuǎn)變?yōu)樾碌臓顟B(tài),即Q1=D3,Q0=D2。以此類推,輸入數(shù)碼依次由左側(cè)觸發(fā)器移到右側(cè)觸發(fā)器。經(jīng)過4個(gè)時(shí)鐘脈沖后,4個(gè)觸發(fā)器的輸出狀態(tài)Q3Q2Q1Q0與輸入數(shù)碼D3D2D1D0相對(duì)應(yīng)。這樣,就將串行輸人數(shù)據(jù)轉(zhuǎn)換為并行輸出數(shù)據(jù)Dpo。

一般來說,N位移位寄存器要由N個(gè)觸發(fā)器構(gòu)成,需要N·Tcp來完成串行到并行的數(shù)據(jù)轉(zhuǎn)換,同樣也需要N?Tcp來實(shí)現(xiàn)并行到串行的數(shù)據(jù)輸出。這里,Tcp為時(shí)鐘周期。從上述操作可以看出,移位寄存器只能用脈沖邊沿敏感的觸發(fā)器,而不能用電平敏感的鎖存器來構(gòu)成,因?yàn)樵跁r(shí)鐘脈沖高電平期間,鎖存器輸出跟隨輸入變化的特性將使移位操作失去控制。顯然,移位寄存器屬于同步時(shí)序電路。

1.基本移位

首先說明“由于國家標(biāo)準(zhǔn)規(guī)定,邏輯圖中最低有效位(LSB)到最高有效位(MSB)的電路排列順序應(yīng)從上到下,從左到右。因此定義移位寄存器中的數(shù)據(jù)從低位觸發(fā)器移向高位為右移,反之則為左移。這一點(diǎn)與通常計(jì)算機(jī)程序中規(guī)定相反,后者從自然二進(jìn)制數(shù)的排列考慮,將數(shù)據(jù)移向高位定義為左移,反之為右移?!贝藘?nèi)容摘自《電子技術(shù)基礎(chǔ)-數(shù)字部分》康華光主編教材。

module shifter( din, clk, rst, dout,done);

input din, clk, rst;

output [7:0] dout;

output reg done; //完成移位

reg [7:0] dout;

reg [3:0] cnt;

always @(posedge clk)

begin

if(rst) //清零

dout <= 8’b0;

else if(cnt<=4’d7)

begin

dout<=dout>>1; //左移

dout[7]<=din;

/*dout <= dout<<1;

dout[0] <= din; */ //右移

end

else

dout<=dout;

end

always@(posedge clk)

begin

if(rst)

begin

cnt<=4'd0;

done<=1'b0;

end

else if(cnt==4'd7)

begin

cnt<=4'd0;

done<=1'b1;

end

else begin

cnt<=cnt+1'b1;

done<=1'b0;

end

end

endmodule

2.雙向移位

雙向移位實(shí)現(xiàn)數(shù)據(jù)保持、右移、左移、并行置數(shù)、并行輸出。

module two_way(

input clk,

input rst,

input s0,s1, //選擇輸入端口

input din1,din2, //串行數(shù)據(jù)輸入

input [3:0] d, //并行數(shù)據(jù)輸入

output reg [3:0] q //輸出端口

);

always@(posedge clk or negedge rst)

begin

if(!rst)

q<=4'd0;

else begin

case({s1,s0})

2'b00: q<=q; //輸出保持不變

2'b01: q<={q[2:0],din1}; //右移

2'b10: q<={din2,q[3:1]}; //左移

2'b11: q<=d; //并行置數(shù)

endcase

end

end

endmodule

在數(shù)字電路中,移位寄存器(Shift Register)是時(shí)鐘的脈沖(上升沿)觸發(fā)之下工作的一種以觸發(fā)器為基礎(chǔ)的電路器件,在每個(gè)時(shí)鐘上升沿的觸發(fā)之下,數(shù)據(jù)會(huì)依次向左或右移動(dòng)一個(gè)比特(Bit),最后在輸出端進(jìn)行輸出,這里,數(shù)據(jù)可以以并行或者以串行的方式輸入到該移位寄存器的電路器件中。

移位寄存器也是類似一種存儲(chǔ)器,可以存儲(chǔ)數(shù)據(jù),而存在里邊的數(shù)據(jù)可以從低位向高位移動(dòng)或從高位向低位移動(dòng)。例如一個(gè)4位的移位寄存器,存在其中的數(shù)據(jù)為“1100”,如果向左(即高位MSB)移動(dòng)一次,就變成“100X”,原來的最高位的“1”移出,最低位的“X”可以是新移入的數(shù)據(jù),也可以是0(我們本次設(shè)計(jì)用的是隨機(jī)數(shù)據(jù),即隨機(jī)輸入“0”或者是“1”)。

就是因?yàn)橐莆患拇嫫髦械臄?shù)據(jù)可以在移位脈沖作用下依次逐位右移或者依次逐位左移,而數(shù)據(jù)既可以并行輸入、并行輸出、串行輸入以及串行輸出,也可以并行輸入、串行輸出、串行輸入以及并行輸出,因此,正是因?yàn)橐莆患拇嫫魅绱遂`活,才使得它用途廣泛,可以應(yīng)用于許許多多的數(shù)字電路設(shè)計(jì)模塊之中,從而實(shí)現(xiàn)多種多樣的功能。

那么,現(xiàn)在先來我們的代碼,下面是主程序和測(cè)試程序(TestBench):

當(dāng)時(shí)鐘信號(hào)上升沿到來的時(shí)候(前提是復(fù)位信號(hào)無效的時(shí)候),輸出的8位數(shù)據(jù)先移位后輸出,低位賦值一個(gè)隨機(jī)數(shù),依次移位。

clk:時(shí)鐘信號(hào)

rst_n:復(fù)位信號(hào),在這里也稱為置零信號(hào),它使得輸出數(shù)據(jù)為零,后綴“_n”表示低電平的時(shí)候有效;

data_out:數(shù)據(jù)輸出,這里為8位數(shù)據(jù)輸出,然后先是數(shù)據(jù)進(jìn)行移位,從低位讓高位移動(dòng),比如仿真中的“11110110”(f6),在下一個(gè)時(shí)鐘觸發(fā)信號(hào)到來之后,就進(jìn)行左移,由原先的“11110110”往左移一位,變?yōu)椤?110110X”,然后X隨機(jī)帶入,這里代入的是“1”,所以下一個(gè)輸出為“11101101”(ed),依次類推。

該程序?qū)崿F(xiàn)的移位寄存器功能一目了然。

對(duì)于移位寄存器,這里我們比較常見的芯片有74194芯片(考試也最??嫉?,它是一種四位雙向移位存器。我們根據(jù)移位方向,常把它分成左移寄存器、右移寄存器和雙向移位寄存器三種。根據(jù)移位數(shù)據(jù)的輸入和輸出方式,又可將它分為串行輸入-串行輸出、串行輸入-并行輸出、并行輸入-串行輸出和并行輸入-并行輸出四種電路結(jié)構(gòu)。大家如果感興趣的話可以去百度搜索這款移位寄存器的芯片手冊(cè)閱讀一下,對(duì)于自己的學(xué)習(xí)還是非常有幫助的!

聲明:該篇文章為本站原創(chuàng),未經(jīng)授權(quán)不予轉(zhuǎn)載,侵權(quán)必究。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉