数字逻辑电路的基本结构:触发器之间夹着组合逻辑。(抽象)
注:触发器泛指的是时序单元。
一、组合逻辑
1、变量类型:wire型和reg型
2、wire型变量的赋值方式—— assign
assign [drive_strength] [delay] net_value = expression;
信号强度 设定时延 变量 表达式
3、wire型变量直接赋值
①wire data_num; assign data_num = 1’b0; //常数赋值
②wire data_cs; assign data_cs = data_num; //变量赋值
③wire [7:0] data_input;
assign data_input[7:4] = 4’b0000; //局部赋值
④直通模块
module Bypass
( input Input_data,
output Output_data
);
wire [7:0] Input_data;
wire [7:0] Output_data;
assign Output_data = Input_data;
endmodule
注:因为这个模块实际上不具有逻辑功能,所以一般的综合软件(如Qurtus ii)都会给出警告(Warning)后,把这个模块给优化掉。
而我们如果不想让该模块中的变量被优化(为了在使用signaltap时查看被优化的变量),则可以在定义变量时添加如下语句:
wire [7:0] Input_data/* synthesis keep */;
如针对reg型变量
reg [7:0] Input_data/* synthesis preserve */;
4、逻辑运算
①针对标量信号(1bit)
! 取反
&& 与
|| 或
②针对向量信号(多bit)</