16位移位寄存器设计与FPGA实现(逻辑左移、逻辑右移、算术右移、循环左移、循环右移)
module shift_reg
(
input clk,
input rst_n,
input Logic_L,//逻辑位移使能信号
input Arith_L,//算术位移使能信号
input Circu_L,//循环位移使能信号
output [15:0]data_0//输出数据
);
【16位移位寄存器设计与FPGA实现(逻辑左移、逻辑右移、算术右移、循环左移、循环右移)】
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
begin
Logic_L2<=Logic_L;
Arith_L2
推荐阅读
- 寻址方式与用于寻址的寄存器小结(8086)
- Jvm相关知识点
- python生成13位或16位时间戳以及反向解析时间戳
- STM32定时器自动重装载寄存器和预加载寄存器的区别与联系
- 汇编语言(4)整数运算
- #|C52单片机定时器2介绍
- RA8875控制寄存器详解
- stm32影子寄存器、预装载寄存器,TIM_OC1PreloadConfig和TIM_ARRPreloadConfig的作用
- r14/lr寄存器的值
- 51单片机寄存器功能一览表