HDLBits刷题记录--Modules:Hierarchy

2023-05-16

HDLBits刷题记录

Modules:Hierarchy

Module

电路图:
Module
代码:

module top_module ( input a, input b, output out );
    mod_a mod_a(
        .in1(a),
        .in2(b),
        .out(out)
    );
endmodule

--第二种写法

module top_module ( input a, input b, output out );
    mod_a mod_a(
        a,b,out
    );
endmodule

Module pos

电路图:
Module pos
代码:

module top_module ( 
    input a, 
    input b, 
    input c,
    input d,
    output out1,
    output out2
);
    mod_a mod_a(out1,out2,a,b,c,d);
endmodule

Module name

电路图:
Module name
代码:

module top_module ( 
    input a, 
    input b, 
    input c,
    input d,
    output out1,
    output out2
);
mod_a mod_a
    (
        .out1(out1),
        .out2(out2),
        .in1(a), 
        .in2(b),
        .in3(c), 
        .in4(d)  
    );
endmodule

Module shift

电路图:
Module shift
代码:

module top_module ( input clk, input d, output q );
    
    wire q1,q2;
    
	my_dff my_dff0
    ( 
        .clk(clk),
        .d(d),
        .q(q1) 
    );
    
    my_dff my_dff1
    ( 
        .clk(clk),
        .d(q1),
        .q(q2) 
    );
    
    my_dff my_df2
    ( 
        .clk(clk),
        .d(q2),
        .q(q) 
    );
endmodule

Module shift8

电路图:
Module shift8
代码:

module top_module ( 
    input clk, 
    input [7:0] d, 
    input [1:0] sel, 
    output [7:0] q 
);
	
    wire [7:0]q0;
    wire [7:0]q1;
    wire [7:0]q2;
    
    
    always@(*)
        begin
            case(sel)
                2'b00:q<=d;
                2'b01:q<=q0;
                2'b10:q<=q1;
                2'b11:q<=q2;
            endcase
        end
        
   my_dff8 my_dff0
    ( 
        .clk(clk),
        .d(d),
        .q(q0) 
    );
    
    my_dff8 my_dff1
    ( 
        .clk(clk),
        .d(q0),
        .q(q1) 
    );
    
    my_dff8 my_df2
    ( 
        .clk(clk),
        .d(q1),
        .q(q2) 
    );
    
endmodule

Module add

电路图:
Module add
代码:

module top_module(
    input [31:0] a,
    input [31:0] b,
    output [31:0] sum
);
    wire [15:0]sum1;
    wire [15:0]sum2;
    wire count1;
    add16 add16_1( 
        .a(a[15:0]),
        .b(b[15:0]),
        .cin(1'b0),
        .sum(sum1),
        .cout(count1) 
                 );
    
     add16 add16_2( 
         .a(a[31:16]),
         .b(b[31:16]),
         .cin(count1),
         .sum(sum2),
        .cout() 
                 );
    assign sum={sum2,sum1};
endmodule

Module fadd

电路图:
Module fadd
代码:

module top_module (
    input [31:0] a,
    input [31:0] b,
    output [31:0] sum
);//

    wire	cout;

	add16 add16_0( 
       .a(a[15:0]),
       .b(b[15:0]),
       .cin(1'b0), 
       .sum(sum[15:0]),
       .cout(cout)
	);

	add16 add16_1( 
       .a(a[31:16]),
       .b(b[31:16]),
       .cin(cout), 
       .sum(sum[31:16]),
       .cout()
	);
    
endmodule
	 

module add1 ( input a, input b, input cin,   output sum, output cout );

// Full adder module here
    assign {cout, sum} = a + b + cin;

endmodule

Module cseladd

电路图:
Module cseladd
代码:

module top_module(
    input [31:0] a,
    input [31:0] b,
    output [31:0] sum
);
	
    wire cout;
    wire [15:0]sum1;
    wire [15:0]sum2;
    
    add16 add16_0( 
        .a(a[15:0]), 
        .b(b[15:0]),
        .cin(1'b0),
        .sum(sum[15:0]), 
        .cout(cout)
    );
    
     add16 add16_1( 
         .a(a[31:16]), 
         .b(b[31:16]),
         .cin(1'b0),
         .sum(sum1), 
         .cout()
    );
    
     add16 add16_2( 
         .a(a[31:16]), 
         .b(b[31:16]),
        .cin(1'b1),
        .sum(sum2), 
        .cout()
    );
    always@(*)
    begin
    if(cout==1'b0)
        sum[31:16]=sum1;
    else if(cout==1'b1)
        sum[31:16]=sum2;
    end
endmodule

Module addsub

电路图:
Module addsub
代码:

module top_module(
    input [31:0] a,
    input [31:0] b,
    input sub,
    output [31:0] sum
);
    wire [31:0]b_sub;
    wire cout;
	assign b_sub = b ^ {32{sub}};
    
    add16 add16_1( 
        .a(a[15:0]),
        .b(b_sub[15:0]),
        .cin(sub),
        .sum(sum[15:0]), 
        .cout(cout)
    );
    
    add16 add16_2( 
        .a(a[31:16]),
        .b(b_sub[31:16]),
        .cin(cout),
        .sum(sum[31:16]), 
        .cout()
    );
endmodule

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HDLBits刷题记录--Modules:Hierarchy 的相关文章

  • python-旋转图像并裁剪出黑色边框

    在进行旋转图像时 xff0c 遇到了旋转后的图像存在黑边的情况 xff0c 上网查了很多方法 xff0c 找到了这个方法是比较好的 xff0c 附上链接添加链接描述 span class token keyword def span spa
  • 解决NetworkX遇到 AttributeError: ‘Graph‘ object has no attribute ‘node‘ 问题

    学习NetworkX时 xff0c 查看结点属性时遇到了报错 xff1a AttributeError Graph object has no attribute node G span class token operator 61 sp
  • Docker的安装以及可视化图形界面的安装

    Dockerd的主要作用 xff1a 起到一个 容器 xff08 代码 43 环境 xff09 的作用 xff0c 解决了软件跨环境迁移导致的版本不兼容等问题 使用沙箱机制 xff0c 相互之间没有任何接口 xff0c 且性能开销极低 Do
  • MySQL数据库忘记密码后,如何修改密码

    MySQL修改密码 xff08 本人亲身试验可行 xff01 xff09 1 以管理员身份打开命令行 2 在命令行中进入MySQL的bin目录所在文件夹 即 xff1a 在命令行中输入 xff1a cd 路径 路径查找如下 xff1a 命令
  • 人工智能_03

    逻辑回归 xff08 用于解决分类问题的一种模型 xff0c 核心 xff1a 找到决策边界 xff09 根据数据的特征或者属性 xff0c 计算出其归属于某一类别的概率 P x P x P x
  • 人工智能_04

    无监督学习 xff08 Unsupervised Learning xff09 机器学习的一种方法 xff0c 没有给定事先标记过的训练示例 xff0c 自动对输入的数据进行分类或分群 优点 xff1a 算法不受监督信息 xff08 偏见
  • 远程连接本地以及其他机器上的Ubuntu虚拟机

    连接本机的Ubuntu虚拟机 xff1a 1 查看Ubuntu虚拟机是否安装了ssh服务 xff1a service sshd status 2 安装ssh服务 sudo apt get install openssh server 3 开
  • 注册中心Nacos

    注册中心 nacosNacos注册中心与配置中心nocos优点与缺点启动docker镜像测试linux windows下单机启动应用启动个报错nacos如何修改用户名密码 nacos Nacos注册中心与配置中心 nacos官方文档 Nac
  • git常见问题

    git常见错误 1 在git pull时遇到fatal refusing to merge unrelated histories错误 意思是 xff1a 拒绝合并不相关的分支 表示要合并的本地分支和远程分支是相互独立而不是相关联的 我的情
  • PID 控制器

    本文参考 xff1a 从不懂到会用 xff01 PID从理论到实践 哔哩哔哩 bilibili 目录 1 PID控制器入门 1 1 PID控制器的引入 1 2 PID控制器适用系统 1 3 PID控制器宏观意义 2 PID控制器的必备知识
  • Linux - 第11节 - 网络入门

    目录 1 计算机网络背景 1 1 网络发展 1 2 认识 34 协议 34 2 网络协议初识 2 1 协议分层 2 2 OSI七层模型 2 3 TCP IP五层 xff08 或四层 xff09 模型 3 网络传输基本流程 3 1 同局域网的
  • 【经典问题:汉诺塔】C语言编写程序实现汉诺塔问题——函数递归

    汉诺塔 xff08 Tower of Hanoi xff09 xff0c 又称河内塔 xff0c 是一个源于印度古老传说的益智玩具 大梵天创造世界的时候做了三根金刚石柱子 xff0c 在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘 大梵
  • 1.语音增强技术概述

    一 语音增强发展历史 1987年 xff1a Lim和Oppenheim发表语音增强的维纳滤波方法 xff1b 1987年 xff1a Boll发表谱减法 xff1b 1980年 xff1a Maulay和Malpass提出软判决噪声一直方
  • PCB软件对比分析(AD、Pads、Allegro)

    文章目录 前言一 国内的EDA软件市场二 Altium三 Mentor四 Candence总结 前言 今天来说一说国内用的最多的三款PCB软件对比 一 国内的EDA软件市场 国内的EDA软件几乎被三家瓜分 1 Altium 2 Canden
  • (二)立创EDA之新建工程,原理图,PCB

    文章目录 前言一 界面介绍二 工程广场介绍三 新建工程3 1 修改图纸属性 四 基本的操作介绍4 1 添加器件4 2 连接导线4 3 添加插针4 4 查看封装4 5 修改封装 五 原理图转PCB5 1设置PCB高亮显示元器件5 2 布局传递
  • stm32mp157 wm8960音频驱动调试笔记

    这次调试wm8960音频驱动遇到了好多的坑 xff0c 研究好几天终于调试好了 驱动调试步骤 驱动能不能成功加载是调试的第一大步骤 xff0c 也是最关键的步骤之一 1 查看硬件原理图 2 打开对应的设备树 xff08 stm32mp157
  • ROS发布者(Publisher)和订阅者(Subscriber)的python编程实现(讲解超级详细)

    有时候想想 xff0c 国内有些资源确实比较稀缺 xff0c 但是我们一样不会落后 xff01 学习python和ROS这么久了 xff0c 一直很少去实战 xff0c 另外看到基于python编程的ROS话题通信教程实在是稀缺了 xff0
  • C#工控上位机——框架

    C 工控上位机 第一部分 xff1a UI模块 先点击一下Panel xff0c 在点击一下屏幕 先选中Panel xff0c 在进行属性设置 图标连接 嵌入式窗体 设置按键的事件 using
  • docker镜像启动es/kibana

    下载镜像elasticsearch docker search elasticsearch docker pull elasticsearch 启动镜像 docker run name my elasticsearch p 9200 920
  • 虚拟串口的使用

    虚拟串口的使用

随机推荐

  • 修改闭包内使用的外部变量

    修改闭包内使用的外部变量的错误示例 定义一个外部函数 def func out num1 定义一个内部函数 def func inner num2 这里本意想要修改外部num1的值 xff0c 实际上是在内部函数定义了一个局部变量num1
  • 嵌入式软件面试题

    CSDN的小伙伴们 xff0c 我是林君 今天给小伙伴们分享一些嵌入式软件开发工程师的校招面试题 企业校招对基础考察较多 其次 xff0c 在校参加的相关比赛 xff0c 项目经历 我在生病前 xff0c 面试了一周 xff0c 收到八九个
  • 嵌入式软件工程师技术等级

    1 初级 xff1a 8051或其他单片机 xff0c UCOS xff0c I C xff0c SPI xff0c UART 汇编和C语言能力一般 xff0c 系统集成能力弱 2 中级 xff1a 在初级的基础上 xff0c ARM MI
  • FreeRTOS之动态方法任务创建和删除实验

    一 实验设计 start task xff1a 用来创建其他两个任务 task1 task 当此任务运行5次就调用vTaskDelete 删除任务task2 task task2 task 此任务为普通的应用任务 一 宏定义 任务优先级 d
  • 人工智能研究主要有哪三大学派,其特点是什么?

    人工智能研究主要有哪三大学派 xff0c 其特点是什么 xff1f xff08 1 xff09 符号主义 xff1a 又称为功能模拟学派 xff0c 主要观点认为智能活动的基础是物理符号系统 xff0c 思维过程是符号模式的处理过程 其特点
  • FreeRTOS入门

    目录 一 任务要求二 FreeRTOS移植1 简介2 参考教程3 多任务程序管理实现4 执行结果 三 总结 一 任务要求 在STM32下完成一个基于FreeRTOS的多任务程序 xff0c 执行3个周期性task xff0c 具体任务不限
  • 2021年全国大学生电子设计大赛F题——智能送药小车,全方位解决方案+程序代码(详细注释)山东赛区国奖

    目录 1 赛题及硬件方案分析 xff1a 2 用到的主要器件清单 xff1a 3 各部分思路及代码实现 1 小车舵机 马达驱动 2 蓝牙通信 3 单片机与OpenMV的串口通信 4 单片机与OpenMV的通信协议 5 单片机main文件中的
  • C++学习小记之代码重用问题(1)

    C 43 43 Primer Plus第六版第14章程序清单14 2给的示例代码中有以下两段代码 xff1a double amp Student operator int i return scores i double Student
  • 出现“ ‘xxx‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。”的一个解决方法

    XXX 不是内部或外部命令 xff0c 也不是可运行的程序或批处理文件 前提是已经安装成功某一个插件 有时候 xff0c 我们想用cmd xff08 以管理员身份运行 xff09 执行命令的时候 xff0c 总会出现 XXX 不是内部或外部
  • RK算法分析

    这一节介绍一下由Rabin和Karp提出的RK算法 1 xff0c RK算法的基本思想 HASH xff01 如果两个字符串hash后的值不相同 xff0c 则它们肯定不相同 xff1b 如果它们hash后的值相同 xff0c 它们不一定相
  • Xilinx ZYNQ FreeRTOS+Tracealyzer(移植)

    PL端配置 使用ZYNQ IP Core 打开串口 网口等所需接口 新手注意 xff1a 需要生成bit文件后 xff0c 并输出相应硬件平台 xff0c 网上教程很多 xff0c 请参考其它教程 PS端配置 1 创建任务 xff0c 注意
  • Openmv学习day2——AprilTag

    仅作为个人学习 xff0c 原文地址 xff1a 链接 link AprilTag的简介 AprilTag是一个视觉基准系统 xff0c 可用于各种任务 xff0c 包括AR xff0c 机器人和相机校准 这个tag可以直接用打印机打印出来
  • JS进行简单的表单验证(附详细代码)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 一 JS表单验证是什么 xff1f 一 JS表单验证需求分析 xff1f 三 表单验证所需事件设置from表单及其文本框 xff
  • FreeRTOS学习(三)FreeRTOS任务基础知识

    FreeRTOS任务基础知识 1 FreeRTOS任务特性2 FreeRTOS的任务状态3 任务优先级4 任务调度方式5 任务控制块6 任务堆栈 1 FreeRTOS任务特性 特性1 xff1a 任务数量没有限制 xff0c 想要创建多少个
  • 如何写串口通信

    1 初始化串口 void USART INIT void GPIO InitTypeDef GPIO InitStructure 使能USART1 RCC APB2PeriphClockCmd RCC APB2Periph USART1 E
  • 树莓派WiFi连接问题及网页打开问题的解决

    树莓派WiFi连接问题及网页打开问题的解决 一 问题描述 前一段时间在网上买了一个树莓派 4b计划做一个人脸识别的智能锁 xff0c 前一段时间整赶上期末考试 xff0c 挤时间做了做人脸识别以及人体红外感知模块 xff0c 大致能简单实现
  • windows双系统如何删除ubuntu系统并重装

    电脑装有windows和Ubuntu双系统 xff0c 当需要重装Ubuntu时 xff0c 需要先卸载掉已经安装的Ubuntu系统 博主电脑安装的是Windows10和Ubuntu20 04LTS 现在需要卸载Ubuntu20 04 xf
  • 全网最全的MCU面试经(基于STM32F103)

    免责声明 提示 xff1a 写本文章的缘由 xff1a 本人在秋招时复习STM32有关的知识点 xff0c 便顺势记录下来 本文章的知识均属于各大论坛的大佬回答 xff0c 其中也有我的一些补充 xff0c 本文主要以自己对STM32的理解
  • Quartus II和Modelsim初学踩坑笔记

    Quartus II和Modelsim初学踩坑笔记 1 软件安装 网上有关软件安装的教程已经足够多了 xff0c 这里不再赘述 xff0c 但我要提醒的一点是 xff0c 不要把软件和之后创建的项目工程放在中文路径下面 本文使用的软件环境是
  • HDLBits刷题记录--Modules:Hierarchy

    HDLBits刷题记录 Modules Hierarchy Module 电路图 xff1a 代码 xff1a module top module span class token punctuation span input a span