FPGA----verilog

四值逻辑系统


逻辑运算符

与:&&       a && b

或:||          a || b

非:!         ! a


位运算符

与:&                a & b

或:|                  a | b

非:~                ~a

异或:^             a ^ b


常用的可综合关键字

module endmodule input wire case posedge or
if else output reg default negedge always
begin end inout parameter endcase assign

输入只能被定义成wire型;

在assign里赋值的是wire型变量;

在always里赋值的是reg型变量;

代码:

module xuanzeqi(a,b,o1);

input      a,b ;
output reg o1  ;

always @(*)begin
    if(a) o1 = b;
    else  o1 = 1'b0;
end

endmodule

电路:


锁存器、选择器和D触发器


择器

代码:

module suocunqi(data,q,enable);

input      data,enable ;
output reg q  ;

always @(*)begin
    if(enable)  q = data;
    else    q = 1'b0;
end

endmodule

当enable = 1时,将data输入到q;当enable = 0时,将1'b0输入到q;满足选择器定义,生成选择器。

电路:

D触发器

代码:

module suocunqi(clk,data,q,enable);

input      clk,data,enable ;
output reg q  ;

always @(posedge clk)begin
    if(enable)  q <= data;
//    else      q <= q;
end

endmodule

无论是否有else语句,上升沿来临且enable = 1,将data输入到q;其他时候,q保持不变,符合带使能位的D触发器定义,生成D触发器。

电路:

组合逻辑反馈环路

摩尔(Moore)状态机:输出只与状态有关而与输入无关;

米里(Mealy)状态机:输出与状态和输入都有关系;

猜你喜欢

转载自blog.csdn.net/lengtian90/article/details/81915503