• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 模擬技術 > 設計應用 > 實驗14:移位寄存器

    實驗14:移位寄存器

    作者: 時間:2023-10-11 來源:電子森林 收藏

    本實驗的任務是設計一個7位右移并行輸入、串行輸出的

    本文引用地址:http://www.czjhyjcfj.com/article/202310/451354.htm

    如果將多個觸發器級聯就構成一個多位的,如下圖所示,是以4位移位寄存器為例的邏輯電路圖,其中的LD/SHIFT是一個置數/移位控制信號。當LD/SHIFT為1時,在CP作用下,從輸入端A、B、C、D并行接收數據;當LD/SHIFT為0時,在CP作用下,將寄存器中的數據順序移出,空位由輸入端SIN補充。這種寄存器常用來進行并行數據到串行數據的轉換。


    7位移位寄存器程序清單 shift7.v

     module shift7(input wire clk,           //輸入時鐘input wire rst,			  //復位信號input wire [6:0] datain,  //并行輸入數據output wire  dataout 	  //串行輸出數據); reg [6:0] data; always @(posedge clk)
    	if(!rst)
    		data <= datain;			//同步復位,復位時并行數據存入變量data
    	else
    		begin
    			data[6] <= 1'b0;		//最高為補0
    			data[5] <= data[6];
    			data[4] <= data[5];
    			data[3] <= data[4];
    			data[2] <= data[3];
    			data[1] <= data[2];
    			data[0] <= data[1];     //右移一位
    		end assign dataout = data[0];		//串行輸出 endmodule

    仿真文件shift_tb.v

     `timescale 1ns/100ps    //仿真時間單位/時間精度module shift7_tb;	reg clk, rst;       //需要產生的激勵信號定義reg [6:0]datain;    wire dataout;       //需要觀察的輸出信號定義initial
    	begin
    		clk =0;
    		rst =1;
    		datain =7'b1110101;   //所需移位數據
    		#50
    		rst =0;
    		#100
    		rst =1;
    	endalways #20 clk =~clk;     //產生時鐘信號 頻率25MHz//module調用例化格式shift7 u1 (
    				.clk	(clk),
    				.rst	(rst),
    				.datain	(datain),
    				.dataout(dataout)
    			);endmodule
    1. 仿真結果如下圖所示:
    2. 實驗現象:從仿真波形可以看出,當rst低有效時,輸出dataout在每一個clk上升沿將datain的數據從低位到高位(右移)依次輸出。


    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 宿迁市| 连州市| 浮山县| 进贤县| 彰化县| 平潭县| 曲沃县| 莱芜市| 荣成市| 社旗县| 奉节县| 大连市| 衡阳市| 肃北| 西畴县| 镇赉县| 西畴县| 德化县| 台北市| 庐江县| 平凉市| 尚义县| 仪征市| 淅川县| 宜章县| 宁乡县| 咸阳市| 外汇| 调兵山市| 融水| 陇南市| 兴隆县| 孟州市| 三明市| 榆社县| 景东| 申扎县| 永济市| 永春县| 建平县| 阜平县|