verilog--用于电路设计--1

verilog操作符

逻辑操作符:两个表达式之间进行

&&  

||

位操作符:两个变量之间进行

&

|

^

~^

缩位操作符:矢量的每个bit都参与操作(从左向右),结果为1bit位宽

&

|

^

~&

~|

~^

算术操作符

==

!=

>

>=

<

<=

+

-

* //乘

/  //除

% //求余

** //指数运算

其他

~//按位 “非”

例如:

wire a,b;

assign b=~a;//等效于 assign b[0] =~a[0]; assign b[1]=~a[1]

{} //拼接

<< //左移 =>*2**n

>> // 右移 =>/2**n

? //条件运算符

可重用和模块化设计

parameter

在module内部定义parameter

module module_name #(parameter FIFO_PTR =4,

                                                          FIFO_WIDTH =32)

(...,

...);

input [FIFO_WIDTH -1:0] wr_data;

input [FIFO_WIDTH -1:0] rd_data;

......

endmodue

include 进来 parameters.vh

module module_name

(...,

...);

input ...;

output...;

...;

`include /*/*/parameters.vh

endmodule

verilog 函数--function(不能有时间语句 wait @ #)

函数具有一个函数名,一个或多个input,以及一个output

module module_name

...

function [n:0] output_name;

input [] a;

input [] b;

...

begin

        output_name= ...;

end

endfunction

调用function;

...

调用function;

...

endmodule

generate :简化设计流程,提高电路的可重用性

parameter END_NUMBER =10;

generate 

              genvar i;

               for (i=0; i<(END_NUMBER);i=i+1)

               begin

               ...

               end

endgenetate

对一个电路模块多次例化

generate

             genvar n;

              for(n=0; n< NUM_OF_PORTS;n=n+1)

              begin :switch_port_inst

                switch_port        switch_port_u

                                          (.a (in1[n]),

                                           .b (in2[n]),

                                           .c (out1[n]),

                                           .d (out2[n]),

                end

`ifdef 条件编译

`ifdef

`else if

`else if

`else

`endif

PS:`ifdef `endif有且只能出现一次;`else if 可出现{0,};`else {0,1}

数组、多维数组

例子

reg [31:0] memory[0:127];

                

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值