使用任务设计四个并行输入数的排序组合逻辑
来源:互联网 发布:mac book pro速度慢 编辑:程序博客网 时间:2024/06/05 17:39
1、使用冒泡排序算法,编写一个任务,完成四个8位2进制输入数据的
(1)、冒泡排序思想:(如下图)
(2)、从上面的算法思想中可以看出,在排序过程中,我们需要设定一个计数器,以判断在第i轮排序中,要排序到多少位;
(3)、建模
`define data_length 8
module sort3(a,b,c,d,ra,rb,rc,rd);
input [`data_length-1:0]a,b,c,d;
output [`data_length-1:0]ra,rb,rc,rd;
reg [`data_length-1:0]ra,rb,rc,rd;
reg [`data_length-1:0]va,vb,vc,vd;
always @(a,b,c,d)
begin
{va,vb,vc,vd}={a,b,c,d};
sort3(va,vb);
sort3(vb,vc);
sort3(vc,vd);
sort3(va,vb);
sort3(vb,vc);
sort3(va,vb);
{ra,rb,rc,rd}={va,vb,vc,vd};
end
task sort3;
inout [`data_length-1:0]x,y;
reg [`data_length-1:0]tmp;
if(x>y)
begin
tmp=x;
x=y;
y=tmp;
end
endtask
//assign r[`data_number-1:0]=v[`data_number-1:0];
endmodule
(3)仿真:
`include "sort3.v"
//`timescale 1ns/100ps
module sort3_stimulus;
reg [7:0]a,b,c,d;
wire [7:0]ra,rb,rc,rd;
sort3 sm(a,b,c,d,ra,rb,rc,rd);
initial
begin
a=0;b=0;c=0;d=0;
repeat(50)
begin
#100 a={$random}%256;
b={$random}%256;
c={$random}%256;
d={$random}%256;
//#100 $stop;
end
/*#100 a=8'd15;b=8'd8;c=8'd13;d=8'd4;
#100 a=8'd15;b=8'd13;c=8'd8;d=8'd4;
#100 a=8'd7;b=8'd8;c=8'd2;d=8'd1;
#100 a=8'd14;b=8'd8;c=8'd13;d=8'd4;
*/
end
endmodule
- 使用任务设计四个并行输入数的排序组合逻辑
- 输入四个数的最大值
- 四个数的排序问题
- 1-15中四个数的组合
- 第七周任务2-输入四个数,输出最大值最小值
- 输入四个数,输出其中的最大值
- (C++)输入四个数,输出最大的数
- 四个数排序
- 第七周任务2—求四个数的最大值
- 第七周上机任务(求四个数的最大值)
- C++第十二周任务-求四个数的最大公约数
- 求四个数的最大公约数(第十二周上机任务)
- 12周任务:求四个数的最大公约数(函数)
- 第十二周任务3:四个数的最大公约数
- 输入四个数倒序输出
- C++ 第七周任务2-输入四个数,输出其中最大值
- SharedPreferences存数输入信息后的四个方法
- HDU 5642 不能出现连续四个数相同的组合情况 (组合数学)
- Git pull 出现Unlink of file '.git/objects/pack/.tmp-xxx' failed. Should I try again? (y/n) 解决办法
- 临时变量与复制构造函数(二)
- lambda表达式
- sysctl
- 程序员的这些个笑话 你都看得懂吗?
- 使用任务设计四个并行输入数的排序组合逻辑
- SQL语句、PL/SQL块和SQL*Plus命令之间的区别
- iphone,ipad,关于icon图标的那些事
- Drools 规则引擎(上)
- Android制作曲线、柱状图、饼形等图表——使用AChartEngine
- myeclipse2014安装插件的几种方式
- 贪心- poj1017 Packets
- 毕业四年
- 类反射1