回顾:构建模块
本课属于 Coddy Verilog 学习旅程的“基础知识”单元。第 36 课,共 90 课。
挑战
这个挑战会综合你在本章学到的所有内容。你将从头创建一个模块,并实例化它。
要做什么:
第 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 在线编译器