欢迎光临散文网 会员登陆 & 注册

HDLBits (3) — 简单的线网

2021-09-05 14:13 作者:僚机Wingplane  | 我要投稿

本题链接:

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


HDLBits (3) — 简单的线网的评论 (共 条)

分享到微博请遵守国家法律