我是靠谱客的博主 犹豫未来,最近开发中收集的这篇文章主要介绍【Verilog数字系统设计——方式可控的移位寄存器】Verilog数字系统设计——方式可控的移位寄存器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Verilog数字系统设计——方式可控的移位寄存器

题目

  1. 编程实现方式可控的移位寄存器,移位方式共有四种:a、自循环左移;b、带进位位循环左移;c、自循环右移;d、带借位位的循环右移。寄存器异步复位。
  2. 仔细考虑功能模块端口定义。
  3. 要求完成程序编辑、编译、时序仿真;
  4. 实验提交Verilog设计文件(.v文件)、仿真波形截图文件打包,压缩包以自己的学号+姓名命名;
    下面展示一些 内联代码片
module shift_register(out,reset,load,clk,data,select);
	output [7:0]out;
        input clk,load,reset;
	input [7:0]data;
	input [1:0]select;
	reg temp_out;
        reg temp_cin;
        reg [7:0]out;
	always @(posedge clk or negedge reset)
	begin
   		if(!reset)
		begin
			out=0;
			temp_cin=1;
		end
		else if(load)
		begin
			out=data;
			temp_cin=1;
		end
		else
			begin

				case(select[1:0])
                                     2'b00:out<={out[6:0],out[7]};
                                     2'b01:
					    begin
						temp_out=out[7];
						out={out[6:0],temp_cin};
						temp_cin=temp_out;
					    end
			             2'b10:out<={out[0],out[7:1]};
				     2'b11:
				            begin
						temp_out=out[0];
      						out={temp_cin,out[7:1]};
						temp_cin=temp_out;
					    end

				     default:
						out<=8'bxx;
				endcase
			end
	
	end
Endmodule

 module shift_register_test();
	reg  reset_t,load_t,clk_t;
	reg  [1:0]select_t;
	reg  [7:0]data_t;
shift_register  myshift_register(.out(out_t),.reset(reset_t),.load(load_t),.clk(clk_t),.data(data_t),.select(select_t));

initial 
	begin
        reset_t=1;
	load_t=0;
        data_t=8'b0010_1001;
	clk_t=0;
	select_t=2'b00;


        #10  reset_t=0;
        #20 reset_t=1;
	#30 load_t=1;
	#40  load_t=0;


		
	end  
always #5 clk_t=~clk_t;
always #200 select_t=select_t+1;


endmodule 

在这里插入图片描述

在这里插入图片描述

最后

以上就是犹豫未来为你收集整理的【Verilog数字系统设计——方式可控的移位寄存器】Verilog数字系统设计——方式可控的移位寄存器的全部内容,希望文章能够帮你解决【Verilog数字系统设计——方式可控的移位寄存器】Verilog数字系统设计——方式可控的移位寄存器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部