Verilog是硬件描述电路,我对此一直稀里糊涂,于是将锆石科技开发板附带的的一些基础数字电路Verilog程序整理记录下来,并且查看他们的RTL视图,总算有点理解了。

  1.基本运算符

 1 module Example_Operation
 2 ( 
 3     input  [3:0]         a       ,
 4     input  [3:0]         b       ,
 5     input  [3:0]        c       ,
 6     
 7     output [3:0]        c1      ,
 8     output [3:0]        c2      ,
 9     output [5:0]        c3      ,
10     output [3:0]        c4      ,
11     output [3:0]        c5      ,
12     output [3:0]        d1      ,
13     output [3:0]        d2      ,
14     output [3:0]        d3      ,
15     output [3:0]        d4      ,
16     output [3:0]        e1      ,
17     output [3:0]        e2      ,
18     output [3:0]        e3      ,
19     output [3:0]        f1      ,
20     output [3:0]        f2      ,
21     output [3:0]        d11     ,
22     output [3:0]        c11     ,
23     output [3:0]        c22     ,
24     output [3:0]        c33     ,
25     output [3:0]        c44     ,
26     output [3:0]        c55     ,
27     output [3:0]        c66     ,
28     output [3:0]        e11     ,
29     output [3:0]        e22     ,
30     output [7:0]        f11     ,
31     output [7:0]        f22
32 );
33 
34 //== waveform1 算数运算符
35 //======================================================================
36 assign c1 = a + b;      //
37 assign c2 = a - b;      //
38 assign c3 = a * b;      //
39 assign c4 = a / b;      //
40 assign c5 = a % b;      //求余
41 
42 //== waveform2 关系运算符
43 //======================================================================
44 assign d1 = a >  b;     //大于
45 assign d2 = a <  b;     //小于
46 assign d3 = a >= b;     //大于等于
47 assign d4 = a <= b;     //小于等于
48 
49 //== waveform3 逻辑运算符
50 //======================================================================
51 assign e1 = !a;         //
52 assign e2 = a && b;     //
53 assign e3 = a || b;     //54 
55 //== waveform4 逻辑等式运算符
56 //======================================================================
57 assign f1 = a == b;     //判断相等
58 assign f2 = a != b;     //判断不等
59 
60 //== waveform5 三目条件运算符
61 //======================================================================
62 assign d11 = a ? b : c; //a为真,则d11 = b
63                         //a为假,则d11 = c
64 
65 //== waveform6 位运算符
66 //======================================================================
67 assign c11 = ~a;        //取反
68 assign c22 = a & b;     //按位与
69 assign c33 = a | b;     //按位或
70 assign c44 = a ^ b;     //按位异或
71 assign c55 = a ~^ b;    //按位同或
72 assign c66 = a ^~ b;    //按位同或
73 
74 //== waveform7 移位运算符 
75 //======================================================================
76 assign e11 = a << b;    //左移
77 assign e22 = a >> b;    //右移
78 
79 //== waveform8 位拼接运算符
80 //======================================================================
81 assign f11 = {a , b};   //拼接a和b,a和b位宽均为4,f11位宽为8
82 assign f22 = {2'd2{b}}; //拼接b低2位
83 
84 endmodule
View Code

相关文章:

  • 2021-06-25
  • 2021-07-27
  • 2021-12-02
  • 2022-12-23
  • 2021-04-23
  • 2022-12-23
  • 2021-10-08
  • 2021-08-05
猜你喜欢
  • 2022-01-21
  • 2021-12-03
  • 2022-12-23
  • 2021-12-03
  • 2021-06-22
  • 2021-11-26
相关资源
相似解决方案