开始数字逻辑设计一开始可能会让人不知所措,因为您需要同时学习新概念、新的硬件描述语言(例如Verilog
)、几个新的软件包,并且通常还需要一块 FPGA
板。HDLBits
提供了一种通过单击“模拟”来练习设计和调试简单电路的方法。
设计电路几个步骤:
1、编写 HDL (Verilog)
代码
2、编译代码以生成电路
3、模拟电路并修复错误
HDL Verilog 练习官网
1、建立一个没有输入和一个输出的电路。该输出应始终驱动 1(或逻辑高电平):
module top_module( output one );
// Insert your code here
assign one = 1'b1;
endmodule
关键字: moudle
、outmoudule
、assign
、output
2、构建一个没有输入和一个输出的电路,输出一个常数0:
module top_module(output zero );
// Module body starts after semicolon
assign zero = 0;
endmodule
模块的主体开始在分号;
之后开始即可。
3、创建一个具有一个输入和一个输出的模块,其行为类似于电线。
module top_module( input in, output out );
assign out = in;
endmodule
与物理线不同,Verilog 中的线(和其他信号)是有方向的。这意味着信息仅在一个方向上流动,从(通常是一个)源到接收器(源通常也称为驱动器,将值驱动到线路上)。在 Verilog “连续赋值” ( assign left_side = right_side;) 中,右侧的信号值被驱动到左侧的导线上。赋值是“连续的”,因为即使右侧的值发生变化,赋值也会一直持续。连续分配不是一次性事件。
模块上的端口也有方向(通常是输入或输出)。输入端口由模块外部的某些东西驱动,而输出端口由外部的某些东西驱动。从模块内部看,输入端口是驱动器或源,而输出端口是接收器。
4、创建一个具有 3 个输入和 4 个输出的模块,其行为类似于进行这些连接的电线
module top_module(
input a,b,c,
output w,x,y,z );
assign w = a;
assign x = b;
assign y = b;
assign z = c;
endmodule