Verilog基礎(chǔ)之十一、移位寄存器實(shí)現(xiàn)
一、前言
????移位寄存器SRL在工程中屬于使用頻率較高個(gè)模塊,可用于存儲(chǔ)數(shù)據(jù),實(shí)現(xiàn)串并轉(zhuǎn)換;根據(jù)數(shù)據(jù)移動(dòng)方向可分為左移寄存器,右移寄存器,左移是向數(shù)據(jù)高位移動(dòng),右移是向數(shù)據(jù)低位移動(dòng)。?
二、工程設(shè)計(jì)
????2.1 工程代碼
工程中包含了左移,右移,循環(huán)移位的設(shè)計(jì),輸出為8位。左移即輸入不斷從右邊進(jìn)入,同理,右移為輸入不斷從左邊加入,循環(huán)移位此處為右循環(huán),每一次變化都是第一位移到最高位,其他位都右移一位。
測試代碼如下,使用系統(tǒng)random生成隨機(jī)數(shù)作為輸入
2.2 綜合結(jié)果
根據(jù)綜合結(jié)果,左移和右移實(shí)現(xiàn)上為位置的對(duì)調(diào),循環(huán)移位因?yàn)闊o需輸入,故綜合后只有輸出

2.3 仿真結(jié)果
????????在紅框1所在的時(shí)刻,輸入in為0,out_l為10011111,out_r為11111001,out_c為10001100。在時(shí)鐘clk的上升沿到來時(shí),進(jìn)行移位,左移out_l右邊加0變?yōu)?0111110,右移out_r左邊加0變?yōu)?1111100,out_c循環(huán)移位變?yōu)?1000110。
????????紅框2所在的時(shí)刻,輸入in為1,在第二個(gè)時(shí)鐘clk的上升沿到來時(shí)out_l變?yōu)?1111101,out_r變?yōu)?0111110,out_c循環(huán)移位變?yōu)?0100011。符合預(yù)期
