module shift_reg
(
input clk,
input rst_n,
input Logic_L,//逻辑位移使能信号
input Arith_L,//算术位移使能信号
input Circu_L,//循环位移使能信号
output [15:0]data_0//输出数据
);
reg [15:0]data;//原数据
always@(posedge clk or negedge rst_n)
begin
if(~rst_n)
data<=0;
else
data<=16'b1010101010101010;//data_i;
end
reg Logic_L1,Arith_L1,Circu_L1;//使能信号打三排,消抖和为检测沿做准备
reg Logic_L2,Arith_L2,Circu_L2;
reg Logic_L3,Arith_L3,Circu_L3;
always@(posedge clk or negedge rst_n)
begin
if(~rst_n)
begin
Logic_L1<=0;
Arith_L1<=0;
Circu_L1<=0;
Logic_L2<=0;
Arith_L2<=0;
Circu_L2<=0;
Logic_L3<=0;
Arith_L3<=0;
Circu_L3<=0;
end
else