Circuits--Sequential--Registers_1

1.4-bit shift register

module top_module(
    input clk,
    input areset,  // async active-high reset to zero
    input load,
    input ena,
    input [3:0] data,
    output reg [3:0] q); 
    
    always@(posedge clk or posedge areset)
        begin
            if(areset)
                q<=4'b0;
            else if(load)
              q<=data;
            else if(ena)
                q<={1'b0,q[3:1]};  //右移一位
            else
                q<=q;
        end

endmodule

2.Left/right rotator

module top_module(
    input clk,
    input load,
    input [1:0] ena,
    input [99:0] data,
    output reg [99:0] q); 
    
 
    always@(posedge clk)
        begin
            if(load)
                q<=data;
            else
                begin
                    case(ena)
                        2'b00:	q<=q;
                        2'b01:	q<={q[0],q[99:1]};
                        2'b10:	q<={q[98:0],q[99]};
                        2'b11:	q<=q;          		
                    endcase
                end
        end

endmodule

3.Left / right arithmetic 

module top_module(
    input clk,
    input load,
    input ena,
    input [1:0] amount,
    input [63:0] data,
    output reg [63:0] q); 
    
    always@(posedge clk)
        begin
            if(load)
                q<=data;
            else if(ena)
                begin
                    case(amount)
                        2'b00:	q<={q[62:0],1'b0}; 
                        2'b01:	q<={q[55:0],8'b0};
                        2'b10:	q<={q[63],q[63:1]};  //保留符号位
                        2'b11:	q<={{8{q[63]}},q[63:8]};
                    endcase
                end
        end

endmodule

4.5-bit LFSR

module top_module(
    input clk,
    input reset,    // Active-high synchronous reset to 5'h1
    output [4:0] q
); 
    
    always@(posedge clk)
        begin
            if(reset)
                q<=5'h1;
            else
                begin
                    q[4]<=q[0]^1'b0;
                    q[3]<=q[4];
                    q[2]<=q[3]^q[0];
                    q[1]<=q[2];
                    q[0]<=q[1];
                end
        end

endmodule

相关推荐

  1. Circuits--Sequential--Registers_1

    2024-04-07 20:42:02       17 阅读
  2. Circuits--Sequential--Registers_2

    2024-04-07 20:42:02       15 阅读
  3. CIrcuits--Sequential--Finite_1

    2024-04-07 20:42:02       12 阅读
  4. Circuits--Sequential--More circuits

    2024-04-07 20:42:02       21 阅读
  5. Circuits--Sequential--Finite_2

    2024-04-07 20:42:02       13 阅读
  6. Circuits--Sequential--Finite4

    2024-04-07 20:42:02       10 阅读
  7. Circuits--Sequential--Finite6

    2024-04-07 20:42:02       12 阅读
  8. Circuits--Sequential--Finite5

    2024-04-07 20:42:02       11 阅读
  9. Circuits--Sequential--Finite7

    2024-04-07 20:42:02       12 阅读
  10. Circuits--Sequential--Finite--one hot

    2024-04-07 20:42:02       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-07 20:42:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-07 20:42:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-07 20:42:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-07 20:42:02       20 阅读

热门阅读

  1. MongoDB

    2024-04-07 20:42:02       19 阅读
  2. 应用开发:python解析斗鱼弹幕

    2024-04-07 20:42:02       18 阅读
  3. 【蓝桥杯第十届省赛B】(部分详解)

    2024-04-07 20:42:02       18 阅读
  4. IoT数采平台2:文档

    2024-04-07 20:42:02       16 阅读
  5. 计算两线段之间的最短距离

    2024-04-07 20:42:02       18 阅读
  6. git环境切换

    2024-04-07 20:42:02       13 阅读
  7. 【STL】概述

    2024-04-07 20:42:02       18 阅读
  8. 系统规划与管理师今年改版?你关心的都在这里

    2024-04-07 20:42:02       18 阅读
  9. 如何利用OceanBase v4.2的 Runtime Filter提升查询效率

    2024-04-07 20:42:02       14 阅读
  10. MySQL 慢查询优化案例

    2024-04-07 20:42:02       20 阅读