Menu
CoddyTech

回顾:构建模块

本课属于 Coddy Verilog 学习旅程的“基础知识”单元。第 36 课,共 90 课。

challenge icon

挑战

这个挑战会综合你在本章学到的所有内容。你将从头创建一个模块,并实例化它。

要做什么:

第 1 部分:创建一个名为 flipflop 的模块,其中包含:

  • 名为 clk 的 1 位输入
  • 名为 d 的 1 位输入
  • 名为 reset 的 1 位输入
  • 名为 q 的 1 位输出(使用 reg,并在 always 块中赋值)

模块应按以下方式工作:

  • 当 reset 为 1 时,q 变为 0
  • 否则,每次时钟沿到来时,q 变为 d

第 2 部分:在 top 模块中实例化 flipflop 模块,并使用按名称映射端口的方式

将端口连接到以下信号:

  • 端口 clk → 信号 clock
  • 端口 d → 信号 data
  • 端口 reset → 信号 reset_signal
  • 端口 q → 信号 out

亲手试试

// 第 1 部分:创建 flipflop 模块

  // TODO:添加端口

  // TODO:添加包含 posedge clk 和 posedge reset 的 always 块
  
  // 如果 reset 为 1,则 q <= 0
  
  // 否则,q <= d


// 第 2 部分:实例化后的顶层模块
module top (
  input clock,
  input data,
  input reset_signal,
  output out
);

  // TODO:实例化 flipflop,实例名为 ff1
  
  // 按名称映射端口:.clk(clock), .d(data), .reset(reset_signal), .q(out)

endmodule

基础知识中的所有课

自己练习: Verilog 在线编译器