数字电路设计之循环右移的verilog实现
来源:互联网 发布:淘宝香水的货源 编辑:程序博客网 时间:2024/06/05 18:03
循环右移这个在ARM的指令中也是比较常见的,今天想把之前没写的这条指令补上。
循环右移感觉上有很多方法,这里就说一些我做出来并仿真正确的做法吧!
module ROR( pre,later,shift);
input wire [7:0]pre;
input wire [2:0]shift;
output wire [7:0]later;
assign later = (pre>>shift)|(pre<<(8-shift)); //这里只有这个连续赋值,但是不要小看这个,这里有一些要注意的
//那里的符号要用“或”,不能用“加”,这个原理就是循环右移就是逻辑左移或上逻辑右移n位(n=数据位数-移位数)
//如果想多些几行就用always语句来实现该组合逻辑,当然写个循环也是可以的,不过用循环综合出来的东西乱七八糟
endmodule //其实还可以用乘法实现移位,这个就看在资源方面哪一种资源更有利了
仿真文件:
module ROR_test;
// Inputs
reg [7:0] pre;
reg [2:0] shift;
// Outputs
wire [7:0] later;
// Instantiate the Unit Under Test (UUT)
ROR uut (
.pre(pre),
.later(later),
.shift(shift),
);
initial begin
// Initialize Inputs
pre = 8'b01111001;
shift = 1;
// Wait 100 ns for global reset to finish
#100;
shift = 2;
#100;
shift = 3;
#100;
shift = 4;
#100;
shift = 5;
#100;
shift = 6;
#100;
shift = 7;
// Add stimulus here
end
endmodule
- 数字电路设计之循环右移的verilog实现
- 数字电路设计之算数右移的verilog实现
- 数字电路设计之堆栈的verilog实现
- 数字电路设计之VGA的字母显示的verilog实现
- 数字电路设计之同步状态机的verilog HDL实现
- 数字电路设计之各种触发器的verilog实现
- 数字电路设计之奇偶分频的verilog实现
- 数字电路设计之恢复余数除法器的verilog实现
- 数字电路设计之GoldSchmidt除法的verilog实现
- 数字电路设计之牛顿迭代法计算除法的verilog实现
- 数字电路设计之VGA显示条形图的verilog实现
- 数字电路设计之32位先进进位加法器的verilog实现
- 数字电路设计之写verilog易犯的错误
- 数字电路设计之verilog的define和parameter
- 数字电路设计之verilog的门级描述
- 数字电路设计之verilog的小技巧集锦
- 数字电路设计之verilog 原语
- 数字电路设计之加法器的实现
- Uicc之IccFileHandler(原)
- 学生信息管理系统错误集锦(一)
- hdu 1272 并查集判断树的构成
- 另类乘法
- poj 1019
- 数字电路设计之循环右移的verilog实现
- hdu2492 数状数组或者线段树
- 初使JNI
- C++ 之 对象的实现
- 深度剖析 Android APK 签名机制
- HDU 4888
- FlatBuffers与protobuf性能比较
- XML概述
- iframe问题(未解决)