我是靠谱客的博主 多情外套,最近开发中收集的这篇文章主要介绍【连载】 FPGA Verilog HDL 系列实例--------双向移位寄存器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

【连载】 FPGA Verilog HDL 系列实例  

Verilog HDL 之 双向移位寄存器

一、原理

  前一个实验设计的寄存器只有寄存数据和代码的功能。有时为了处理数据,需要将寄存器中的各位数据在移位控制信号的作用下,依次向高位或是低位移动移位。具有移位功能的寄存器称为移位寄存器。
  本实验就是设计一个双向的移位寄存器,该寄存器可以对4位信号串行输入的数据进行移动输出。另外,该寄存器还有一个异步清零端,低电平有效。还有一个load装载数据的信号输入,用于预置数据,还有一个控制左移或是右移的信号输入,其功能表如表1.1所示。

              表1.1    双向移位寄存器功能表

二、实现

在设计文件中输入Verilog代码

 1 `timescale 1 ns / 1 ps
2
3 module shiftdata ( left_right ,load ,clr ,clk ,DIN ,DOUT );
4
5 input left_right ;
6 wire left_right ;
7 input load ;
8 wire load ;
9 input clr ;
10 wire clr ;
11 input clk ;
12 wire clk ;
13 input [3:0] DIN ;
14 wire [3:0] DIN ;
15
16 output [3:0] DOUT ;
17 wire [3:0] DOUT ;
18 reg [3:0] data_r;
19
20 assign DOUT = data_r ;
21
22 always @ ( posedge clk or posedge clr or posedge load )
23 begin
24 if ( clr == 1)
25 data_r <= 0;
26 else if (load )
27 data_r <= DIN;
28 else begin
29 if ( left_right)
30 begin
31 data_r <= (data_r<<1);
32 data_r[0] <= 0;
33 end
34 else begin
35 data_r <= (data_r>>1);
36 data_r[3] <= 0;
37 end
38 end
39 end
40
41 endmodule

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/kongtiao/archive/2011/08/31/2151849.html

最后

以上就是多情外套为你收集整理的【连载】 FPGA Verilog HDL 系列实例--------双向移位寄存器的全部内容,希望文章能够帮你解决【连载】 FPGA Verilog HDL 系列实例--------双向移位寄存器所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部