锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

Verilog数字系统设计教程第三部分练习七

时间:2023-11-26 18:37:01 接近开关移位传感器vlg10

提示:文章完成后,目录可以自动生成,如何生成可以参考右边的帮助文档

目录

前言

高速排序组合逻辑,4个并行输入数

1.1 程序语句:

1.2 testbench语句:

1.3 仿真波形:

二、使用步骤

2.1 程序语句:

2.2 testbench语句:

2.3 仿真波形:

总结


前言

(1)掌握任务Verilog模块设计中的应用;

(2)学会在电平敏感列表中学习always中使用拼接操作、任务和阻塞赋值等语句,并生成复杂组合逻辑的高级方法。


高速排序组合逻辑,4个并行输入数

1.1 程序语句:

module sort4_1(ra,rb,rc,rd,a,b,c,d); output [3:0]ra,rb,rc,rd; input [3:0]a,b,c,d; reg [3:0]ra,rb,rc,rd; reg [3:0]va,vb,vc,vd;       //设置中间变量  always @(a or b or c or d)  begin   {va,vb,vc,vd} = {a,b,c,d};    //给中间变量赋值   sort2(va,vc);        //将va和vb从小到大排列   sort2(vb,vc);   sort2(va,vb);   sort2(vc,vd);   sort2(vb,vc);   {ra,rb,rc,rd} = {va,vb,vc,vd};  end   task sort2;           // 对x和y进行排列  inout [3:0]x,y;  reg [3:0]temp;  if(x > y)   begin    temp = x;     x = y;     y = temp;   end endtask  endmodule

1.2 testbench语句:

`timescale 1 ns/ 100 ps  module sort4_2_vlg_tst(); reg [3:0] a,b,c,d;                                              wire [3:0]  ra,rb,rc,rd;                         sort4_1 i1 (    .a(a),  .b(b),  .c(c),  .d(d),  .ra(ra),  .rb(rb),  .rc(rc),  .rd(rd) ); initial           ///赋值语句                                            begin   a=0;b=0;c=0;d=0;      //赋初值   forever    begin     #100 a = {$random};  //每隔100ns,给a,b,c,d重新赋值        b = {$random};        c = {$random};        d = {$random};    end  end   initial  begin   #100000 $stop;       ///终止程序  end    endmodule

1.3 仿真波形:

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章