Verilog编程巩固

门电路相关练习

1.非门
代码

module top_module( input in, output out );
	assign out=~in;
endmodule

结果
在这里插入图片描述

2.与门
代码

module top_module( 
    input a, 
    input b, 
    output out );
	assign out=a&b;
endmodule

结果
在这里插入图片描述
3.或非门
代码

module top_module( 
    input a, 
    input b, 
    output out );
	assign out=~(a|b);
endmodule

结果
在这里插入图片描述

组合电路

1.Three Modules(Module shift) 给定一个名为my_dff的模块,包含两个输入和一个输出(实现D触发器的功能)。实例化三个my_dff,然后将他们连接在一起,构造成长度为3的移位寄存器。注意:clk端口需要连接到所有的寄存器实例上。
代码:

module top_module ( input clk, input d, output q );
    wire a,b; // 声明两个wire变量,命名为a,b
    // 对my_dff进行了三次实例化,用了三个不同的名字(d1,d2,d3)。
    // 端口使用了位置连接的方式(input clk, input d,input q)
    my_dff d1(clk,d,a);
    my_dff d2(clk,a,b);
    my_dff d3(clk,b,q);

endmodule

结果
在这里插入图片描述
2.2到1多路复用器:创建一个位宽,2比1的多路复用器。当sel=0时,请选择a。当sel=1时,选择b。
代码:

module top_module( 
    input a, b, sel,
    output out ); 
     assign out = (sel) ? b : a;

endmodule

结果
在这里插入图片描述
3.完整加法器:创建一个完整的加法器。一个完整的加法器添加三个位(包括随身行李),并产生一个总和和进行。
代码:

module top_module( 
    input a, b, cin,
    output cout, sum );
    assign{cout,sum} = a + b + cin;
endmodule

结果
在这里插入图片描述

时序电路

1.D 触发器:D 触发器是一个电路,存储 1bit 数据,并定期地根据触发器的输入(d)更新这 1 bit 数据,更新通常发生在时钟上升沿(clk)。存储的数据会通过输出管脚(q)输出。
代码:

module top_module (
    input clk,    // Clocks are used in sequential circuits
    input d,
    output reg q );//

    // Use a clocked always block
    //   copy d to q at every positive edge of clk
    //   Clocked always blocks should use non-blocking assignments
    always@(posedge clk) begin
        q<=d;
    end

endmodule

结果
在这里插入图片描述
2.D翻转:D翻转是存储一点的电路,并定期更新,在时钟信号的(通常)正边缘。D拖鞋由逻辑合成器创建,当使用时钟总是块(参见总是块2O).D翻转是"组合逻辑的斑点,然后是翻转’的最简单形式,其中组合逻辑部分只是一根线。创建单个D翻转。
代码

module top_module (
    input clk,    // Clocks are used in sequential circuits
    input d,
    output reg q );//

    // Use a clocked always block
    //   copy d to q at every positive edge of clk
    //   Clocked always blocks should use non-blocking assignments
    always@(posedge clk) begin
        q <= d;
    end
endmodule

结果
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值