verilog学习笔记(1)module实例化2

移位寄存器+多路选择器

我的代码:

复制代码
module top_module ( 
    input clk, 
    input [7:0] d, 
    input [1:0] sel, 
    output [7:0] q 
);
    wire [7:0] w1;
    wire [7:0] w2;
    wire [7:0] w3;
    
    my_dff8 my_dff8_1(
        .clk(clk),
        .d(d),
        .q(w1)
    );
    
    my_dff8 my_dff8_2(
        .clk(clk),
        .d(w1),
        .q(w2)
    );
    
    my_dff8 my_dff8_3(
        .clk(clk),
        .d(w2),
        .q(w3)
    );
    
    always@(d or w1 or w2 or w3 or sel)
        begin
            if(sel == 2'b00 )
                q <= d;
            else if(sel == 2'b01 )
               q <= w1;
            else if(sel == 2'b10 )
               q <= w2;
            else
               q <= w3;
        end

endmodule

答案:

复制代码
module top_module (
	input clk,
	input [7:0] d,
	input [1:0] sel,
	output reg [7:0] q
);

	wire [7:0] o1, o2, o3;		// output of each my_dff8
	
	// Instantiate three my_dff8s
	my_dff8 d1 ( clk, d, o1 );
	my_dff8 d2 ( clk, o1, o2 );
	my_dff8 d3 ( clk, o2, o3 );

	// This is one way to make a 4-to-1 multiplexer
	always @(*)		// Combinational always block
		case(sel)
			2'h0: q = d;
			2'h1: q = o1;
			2'h2: q = o2;
			2'h3: q = o3;
		endcase

endmodule
相关推荐
这就是佬们吗10 分钟前
力扣---leetcode48
java·笔记·后端·算法·leetcode·idea
nnerddboy10 分钟前
Three.js自学笔记:1.环境搭建
笔记
好奇龙猫22 分钟前
【人工智能学习-AI入试相关题目练习-第八次 】
人工智能·学习
saoys24 分钟前
Opencv 学习笔记:手动绘制彩色图像的 RGB 通道直方图
笔记·opencv·学习
薛不痒25 分钟前
项目:矿物分类(训练模型)
开发语言·人工智能·python·学习·算法·机器学习·分类
程序员zgh32 分钟前
C++ 纯虚函数 — 抽象接口
c语言·开发语言·c++·经验分享·笔记·接口隔离原则
秦奈35 分钟前
Unity复习学习笔记(九):UGUI
笔记·学习·unity
停走的风43 分钟前
anaconda与pycharm卸载重安装笔记
笔记·pycharm·conda
AI_零食1 小时前
鸿蒙的flutter框架表达:生命律动系统
学习·flutter·ui·华为·harmonyos·鸿蒙
深蓝海拓1 小时前
PyQt5/PySide6的moveToThread:移动到线程
笔记·python·qt·学习·pyqt