1.创建一个1位宽的2比1多路复用器。当sel = 0时,选择一个。当sel = 1时,选择b。

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

2.创建一个100位宽的2比1多路复用器。当sel = 0时,选择一个。当sel = 1时,选择b。

module top_module( input [99:0] a, b,input sel,output [99:0] out );assign out = sel ? b : a;
endmodule

3.创建一个16位宽的9对1多路复用器。sel = 0选择a,sel = 1选择b,依此类推。对于未使用的情况(sel = 9至15),将所有输出位设置为“ 1”。

module top_module( input [15:0] a, b, c, d, e, f, g, h, i,input [3:0] sel,output [15:0] out );always@(*)begincase(sel)4'd0: out = a;4'd1: out = b;4'd2: out = c;4'd3: out = d;4'd4: out = e;4'd5: out = f;4'd6: out = g;4'd7: out = h;4'd8: out = i;default: out = 16'b1111_1111_1111_1111;endcase        end
endmodule

4.创建一个1位宽的256:1多路复用器。256个输入全部打包为单个256位输入向量。sel = 0应该选择in [0],sel = 1选择in [1]的比特,sel = 2选择in [2]的比特,依此类推。

module top_module( input [255:0] in,input [7:0] sel,output out );assign out = in[sel];endmodule

5.创建一个4位宽的256:1多路复用器。256个4位输入全部打包为单个1024位输入向量。sel = 0应该选择[3:0]中的位,sel = 1选择[7:4]中的位,sel = 2选择[11:8]中的位,依此类推。

module top_module( input [1023:0] in,input  [7:0] sel,output [3:0] out );assign out[3:0] = {in[sel*4+3],in[sel*4+2],in[sel*4+1],in[sel*4]};
endmodule

6.一位半加器

module top_module( input a, b,output cout, sum );assign cout = (a & b == 1) ? 1'b1 : 1'b0;assign sum = a ^ b;endmodule

7.一位全加器

module top_module( input a, b, cin,output cout, sum );assign cout = (a & b | (a ^ b) & cin == 1'b1) ? 1'b1 : 1'b0;assign sum = a ^ b ^ cin;endmodule

8.3位全加器

module top_module( input [2:0] a, b,input cin,output [2:0] cout,output [2:0] sum );assign cout[0] = a[0] & b[0] | (a[0] ^ b[0]) & cin;assign cout[1]= a[1] & b[1] | (a[1] ^ b[1]) & cout[0];assign {cout[2],sum} = a + b + cin;endmodule

9.需求如下

module top_module (input [3:0] x,input [3:0] y, output [4:0] sum);
assign sum = x + y;
endmodule

10.假设有两个8位2的补码,即a [7:0]和b [7:0]。这些数字相加产生s [7:0]。同时计算是否发生(有符号的)溢出。

module top_module (input [7:0] a,input [7:0] b,output [7:0] s,output overflow
); reg sig;assign {sig,s} = a + b; // 可能产生一个更高位的符号位,此题可不加sigassign overflow = ~a[7] & ~b[7] & s[7] | a[7] & b[7] & ~s[7];//前者为001,即两个负数相加溢出;后者为110,两个正数相加溢出;endmodule

11.创建一个100位二进制加法器。加法器将两个100位数字和一个进位相加,以产生100位总和并执行。

module top_module( input [99:0] a, b,input cin,output cout,output [99:0] sum );assign {cout,sum} = a+b+cin;endmodule

12.为您提供了一个名为bcd_fadd的BCD(二进制编码的十进制)一位数字加法器,该加法器将两个BCD数字和进位相加,并产生总和和进位。

module top_module( input [15:0] a, b,input cin,output cout,output [15:0] sum );reg [3:0] cout1;bcd_fadd u1_bcd_fadd(.a(a[3:0]),.b(b[3:0]),.cin(cin),.cout(cout1[0]),.sum(sum[3:0]));bcd_fadd u2_bcd_fadd(.a(a[7:4]),.b(b[7:4]),.cin(cout1[0]),.cout(cout1[1]),.sum(sum[7:4]));bcd_fadd u3_bcd_fadd(.a(a[11:8]),.b(b[11:8]),.cin(cout1[1]),.cout(cout1[2]),.sum(sum[11:8]));bcd_fadd u4_bcd_fadd(.a(a[15:12]),.b(b[15:12]),.cin(cout1[2]),.cout(cout1[3]),.sum(sum[15:12]));assign cout = cout1[3];endmodule

13.如下

module top_module(input a,input b,input c,output out  ); assign out = ~(~a & ~b & ~c);endmodule

14.如下:

module top_module(input a,input b,input c,input d,output out  ); assign out = ~a & ~d | ~c & ~b | (a | b) & c & d;endmodule

HDLBits练习(三)多路复用器,算术电路,卡诺图电路相关推荐

  1. SPI Flash芯片W25Q32英文版数据手册解读(三)---------程序编写,电路应用

    一.序言 序言对这篇文章进行一个总体的说明: 1.这部分是根据手册写程序,因此采用手册截图+程序截图的形式,对图片不进行标号,而且对重点部分进行颜色标注. 2.考虑到很多读者(包括我),使用手机看文章 ...

  2. 电容三点式LC振荡器电路组成及工作原理简述

    电容三点式LC振荡器电路组成及工作原理简述 [复制链接]     husk2012 116 主题 21 好友 3550 积分 VIP会员 发消息 电梯直达 1#  发表于 2012-10-22 20: ...

  3. 模拟电子技术(三)集成运算放大电路

    (三)集成运算放大电路 多级放大电路 多级放大电路的动态分析 多级放大电路的耦合方式 直接耦合放大电路温漂 差分放大电路(重点必考) 差分放大电路概念 长尾式差分放大电路 差分放大电路的输入输出形式 ...

  4. 三种电源防反接电路(二极管、PMOS)

    最近偶然看到PMOS防反接电路,感觉挺实用的,做个记录. 二极管串联 以常用的5V/2A为例.常用二极管串联在电路中,在电源反接时,二极管承担所有的电压,有效防止电源反接损坏后级设备.但是,二极管上压 ...

  5. 计算机电子技术叠加原理,叠加定理适用于什么电路?电路叠加原理例题解析

    叠加定理适用于什么电路?电路叠加原理例题解析 叠加定理是否适用于二极管电路 叠加原理是针对线性电路的,二极管是非线性的. 叠加定理陈述为:由全部独立电源在线性电阻电路中产生的任一电压或电流,等于每一个 ...

  6. 1.1 电路和电路模型

    一.电路 1.电路的概念:由实际电工设备构成的整体,它为电流的流通提供路径. 2.电路的构成:电路主要由电源.负载.连接导线及开关等构成. 电源(source):提供能量或信号的发生器. 负载(loa ...

  7. 电路复习—电路的基本概念与基本定律

    电路的基本概念与基本定律 最近快要期末考了,自己写一下当作复习用 [!] 以下笔记内容可能会出现部分错误的地方,恳请各位师生批评指正,谢谢! 主要内容 实际电路与电路模型 电路的基本物理量 电路元件 ...

  8. verilog设计简易正弦波信号发生器_采用集成运放和分立元件相结合的方式,利用迟滞比较器电路产生方波信号,以及充分利用差分电路进行电路转...

    展开全部 在Multisim中,函数发生器2113与被测设5261备连接时应注意以下情况:函数发生4102器有三个连接端子1653,+连接端子和-连接端子,中间是公用端子.当使用+和共用端子时,输出信 ...

  9. 哪一类功率放大电路效率最高_学会分析这八大模拟电路,电路设计能力提升一个台阶...

    在电子电路中,电源.放大.振荡和调制电路被称为模拟电子电路,因为它们加工和处理的是连续变化的模拟信号.1. 反馈 反馈是指把输出的变化通过某种方式送到输入端,作为输入的一部分.如果送回部分和原来的输入 ...

  10. 画出该lti系统的幅频特性响应曲线_模拟电路-放大电路的频率响应

    在这一节之前,我们给电路的信号均为单一频率的正弦波信号,而且默认放大电路的特性(放大倍数)与输入信号的频率无关. 在实际的电路中,通常放大电路的输入信号不是单一频率的正弦波信号,而是由各种不同频率分量 ...

最新文章

  1. K8s 应用管理之道 - 有状态服务
  2. 微信小程序开发 Request Headers: Provisional headers are shown
  3. idea中每次push/pull都需要输入账号密码
  4. 使用MarkDown+mermaid-JS绘制简单图形
  5. MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录...
  6. (转)OGNL与值栈
  7. #Win8# Secondary Tile
  8. 在Linux下轻松搭建自己的DNS服务器
  9. Unity3D(五)渲染管线
  10. [BZOJ 1799] self 同类分布
  11. #怎样获取当前时间和时区_JDK1.8新增日期时间类型
  12. 八皇后问题遗传算法c语言,用 遗传算法 解决八皇后问题
  13. 树莓派4b IO引脚输出模式异常
  14. Asp中显示%百分比函数FormatPercent的使用
  15. PageOffice 5.2 试用版注册使用
  16. Oracle --- 表空间
  17. 分享43个职场必备excel函数!(内含详细案例解析及教程参考)
  18. 获取电脑软件的路径(C#)
  19. 应当重视监控系统维保业务的生态建设
  20. 猿创征文|从mysql 到kingbase(人大金仓)

热门文章

  1. 【转载】浅析金庸武侠小说中的哲理意蕴
  2. Windows 下自定义某类型文件图标(例如.h5,.ipynb)
  3. 车辆航向角、横摆角、质心侧偏角
  4. kali内开启键盘背光
  5. #一日一图#谁来暖床!
  6. DLP是如何防止数据泄露的?
  7. Chrome浏览器安装本地插件
  8. 转 Java知识——精华总结
  9. 病案系统实施-基本知识-持续更新
  10. python实现qq登录腾讯视频_QQ腾讯视频爬取和qv_rmt限速算法python版