HDLBits (3) — 简单的线网
本题链接:
https://hdlbits.01xz.net/wiki/Wire
创建一个具有一个输入和一个输出的模块,其使用方式类似于线。
与物理连线不同,Verilog 中的连线(和其他信号)是有方向的。 这意味着信息仅在一个方向上流动,从(通常是一个)源到接收器(源也通常称为驱动器,将值驱动到线路上)。 在 Verilog 的“连续赋值”(assign left_side = right_side;)中,右侧的信号值被驱动到左侧的导线上。 这种赋值是“连续的”,因为即使右侧的值发生变化,赋值也会一直继续。 连续分配不是一次性事件。
模块上的端口也有一个方向(通常是输入或输出)。 输入端口由模块外部的东西驱动,而输出端口驱动外部的东西。 从模块内部看,输入端口是驱动器或源,而输出端口是接收器。
下图说明了电路的每个部分如何对应 Verilog 代码的每一位。 模块和端口声明创建了电路的黑色部分。 你的任务是通过添加一条assign语句来连接输入到输出来创建一条线(绿色)。 盒子外面的部分不是你关心的,但你应该知道你的电路是通过将我们的测试线束的信号连接到你的 top_module 上的端口来测试的。

除了连续赋值之外,Verilog 还具有其他三种用于过程块的赋值类型,其中两种是可综合的。 在我们开始使用程序块之前,我们不会使用它们。
预期的解决方案长度:大约1行。
模块声明:
module top_module( input in, output out );
提示
连续分配会将右侧连续分配给左侧,因此右边的任何更改都会立即在左边被看到。

题目
module top_module( input in, output out );
endmodule

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

输出波形


wire 类型表示硬件单元之间的物理连线,由其连接的器件输出端连续驱动。如果没有驱动元件连接到 wire 型变量,缺省值一般为 "Z"。线网型还有其他数据类型,包括 wand,wor,wri,triand,trior,trireg 等。
参考内容:
2.3 Verilog 数据类型 | 菜鸟教程:https://www.runoob.com/w3cnote/verilog-data-type.html