一位二进制全减器设计

首先我们来看一位全减器的真值表:

其中:a(被减数),b(减数),c(低位是否向本位借位),d_out(本位运算结果),c_in(本位是否向高位借位)

a b c d_out c_in
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1

输出逻辑函数如下:

d_out=(a)^(b)^(c);c_in=a'(b^c)+bc;   (  ^:表示异或)

接下来我们根据上面的真值表和逻辑函数式来进行代码的编写:

  1. 根据真值表写(类似于行为及描述)

    module onebit_full_deductor
    (   input wire a,input wire b,input wire c,output reg d_out,output reg c_in
    );
    always@(a or b or c)case({a,b,c})3'b000: {d_out,c_in} = 2'b00;3'b001: {d_out,c_in} = 2'b11;3'b010: {d_out,c_in} = 2'b11;3'b011: {d_out.c_in} = 2'b01;3'b100: {d_out,c_in} = 2'b10;3'b101: {d_out,c_in} = 2'b00;3'b110: {d_out,c_in} = 2'b00;3'b111: {d_out,c_in} = 2'b11;default:{d_out,c_in} = 2'b00;endcase
    endmodule
    1. 根据逻辑函数式写(类似于数据流描述)

      module onebit_full_deductor
      (   input wire a,input wire b,input wire c,output wire d_out,output wire c_in
      );
      assign d_out = a ^ b ^ c;
      assign c_in = (~a) & (b ^ c) | (b & c);
      endmodule
      

测试代码:

`timescale 1ns / 1ns
module onebit_full_deductor_tb;reg a,reg b,reg c,wire d_out,wire c_in
onebit_full_deductor U1.
(   .a(1),.b(b),.c(c),.d_out(d_out),.c_in(c_in)
);
initialbegina=1'b0;b=1'b0;c=1'b0;#100 a=1'b0;b=1'b0;c=1'b1;#100 a=1'b0;b=1'b1;c=1'b0;#100 a=1'b0;b=1'b1;c=1'b1;#100 a=1'b1;b=1'b0;c=1'b0;#100 a=1'b1;b=1'b0;c=1'b1;#100 a=1'b1;b=1'b1;c=1'b0;#100 a=1'b1;b=1'b1;c=1'b1;#200 $finish;end
endmodule

测试后得到的波形图与真值表对比就可以知道自己是否写正确。

用Verilog HDL实现一位二进制全减器相关推荐

  1. (186)Verilog HDL:3位线性反馈移位寄存器

    (186)Verilog HDL:3位线性反馈移位寄存器 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)Verilog HDL:3位线性反馈移位寄存器 5)结语 1.2 ...

  2. 通过仿真和综合认识D触发器(Verilog HDL语言描述D触发器)

    目录 前言 硬件语言描述 测试文件 仿真图 综合工具综合后的原理图 综合介绍D触发器 维基百科介绍: 其他来源(课本): 8位的D触发器 Verilog HDL程序设计 测试文件: 仿真波形: 综合工 ...

  3. hdl四位二进制计数器_quartus4位二进制加减法计数器.doc

    贵州大学实验报告 学院: 专业: 班级 姓名学号实验组实验时间指导教师成绩实验项目名称4位二进制加减法计数器实验目的了解二进制加减法计数器的设计,进一步了解,熟悉和掌握quartusII的使用方法 学 ...

  4. Verilog HDL中位运算符、逻辑运算符和缩减运算符的区别

    文章目录 前言 一.单目运算符.双目运算符和三目运算符 二.位运算符 三.逻辑运算符 四.缩减运算符 五.总结 前言 我们在学习和理解Verilog HDL中的一些运算符的意义时,可能会对一些运算符的 ...

  5. (88)FPGA面试题-使用Verilog HDL编写二进制转格雷码

    1.1 FPGA面试题-使用Verilog HDL编写二进制转格雷码 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-使用Verilog HDL编写二进制 ...

  6. (32)Verilog HDL按位运算

    (32)Verilog HDL按位运算 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)Verilog HDL按位运算 5)结语 1.2 FPGA简介 FPGA(Fiel ...

  7. [D-VI] my_second_fpga(1位加法器 Verilog HDL抽象级别 modelsim-altrea功能仿真 综合器)

    1 my_second_fpga 1.1 平台 OS:Win7 x64 EDA软件:Quartus II 13.1 FPGA平台:DE1-SOC 1.2 目标 用Verilog HDL不同的抽象能力设 ...

  8. 8位伪随机序列(m序列verilog HDL源码 )

     伪随机码又称伪随机序列,它是具有类似于随机序列基本特性的确定序列.通常广泛应用二进制序列,因此我们仅限于研究二进制序列.二进制独立随机序列在概率论中一般称为贝努利(Bernoulli)序列,它由 ...

  9. 巴克码相关器的verilog HDL设计

    巴克码相关器 巴克码相关器原理:巴克码相关器能够检测巴克码序列峰值,并且能够在1bits错误情况下检测巴克码序列峰值. 巴克码是20世纪50年代初R.H巴克提出的一种具有特殊规律的二进制码组.它是一个 ...

  10. 【Verilog HDL】第三章 reg和net及其一组类型的区别——充分运用实验思维

    0 确定问题的讨论层级与范围 本文讨论的层次是 数字逻辑与Verilog HDL语言 讨论的范围是: 数据存储而不是讨论逻辑 1 线网类型 1.1 wire类型 这个暂时没什么好说的,一般常用的就是w ...

最新文章

  1. 第五天2017/04/06(下午1:C、C++混合编程 与 #ifdef __cplusplus extern C{ })
  2. 【l转】VS2015下解决:无法解析的外部符号 __imp___vsnprintf 及__iob_func
  3. 初始java_第一章__初始JAVA
  4. clickhouse 同步mysql_ClickHouse和他的朋友们(11)MySQL实时复制之GTID模式
  5. 你知道哪些苹果自家应用采用 Swift 语言编写吗?
  6. Pandas 中文API文档
  7. 八卦与十二地支方位图_[天干地支五行八卦图] 天干地支八卦方位图
  8. python爬虫兼职群-经典古言小说推荐完本
  9. 数据中心机房光纤综合布线
  10. 【BZOJ3831】[Poi2014]Little Bird 单调队列
  11. 九年级计算机教学课时计划,【推荐】九年级下学期教学教学工作计划三篇
  12. Ansible企业运维实例(三)—批量硬盘初始化
  13. P3084 [USACO13OPEN]照片Photo(差分约束)
  14. 国家税务总局全国增值税发票查验平台-1
  15. java与MySQL做购物系统_java Swing mysql实现简单的购物系统项目源码附带指导运行视频教程...
  16. 活死细胞染色——Cell Meter 细胞活性检测试剂盒
  17. 【Pytorch】SGDR
  18. 通达信一根均线变色主图指标公式,实现均线向上向下变色
  19. pl_slam配置、运行过程
  20. 如何用tkinter给你爱人画一个爱心,这满满的油腻感是怎么回事?

热门文章

  1. 【经典策略系列】之 Dual Thrust 交易策略
  2. 电压比较器的介绍和工作原理
  3. Android CheckBoxPreference设置默认值会触发持久化以及其内部实现逻辑
  4. 计算机组装与维修标准教程,计算机组装与维护标准教程(2008版)
  5. 谷歌地球(Google Earth)7.3.1.4507官方多语言专业版
  6. Android GPS应用开发
  7. 计算机毕业设计、实战项目之 [含论文+答辩PPT+任务书+中期检查表+源码等]基于S2SH的医院在线挂号[包运行成功]
  8. 按120分计算成绩 mysql_mySql数据库基础
  9. VS Winform如何设置光标样式
  10. 安卓手机qq怎么看密友值_qq好友密友值在哪里看