目录

抛砖引玉

Reduction在奇偶校验中的应用


抛砖引玉

您已经熟悉两个值之间的按位运算,例如a&b或a ^ b。 有时,如果向量很长,您想创建一个对一个向量的所有位进行操作的宽门,例如(a [0]&a [1]&a [2]&a [3] ...)。

缩位运算符可以对向量的位进行AND,OR和XOR,产生一位输出:

&a [3:0] // AND:a [3]&a [2]&a [1]&a [0]。 相当于(a [3:0] == 4'hf)
| b [3:0] //或:b [3] | b [2] | b [1] | b [0]。 相当于(b [3:0]!= 4'h0)
^ c [2:0] // XOR:c [2] ^ c [1] ^ c [0]

这些是只有一个操作数的一元运算符(类似于NOT运算符!和〜)。 您还可以反转这些输出以创建NAND,NOR和XNOR门,例如(〜&d [7:0])。

上述操作中,可以用相应的其他方法来等效替代缩位运算,但是如果位数较多,你怎么做呢?可见,缩位运算符,必不可少。

例如:

Build a combinational circuit with 100 inputs, in[99:0].

There are 3 outputs:

  • out_and: output of a 100-input AND gate.
  • out_or: output of a 100-input OR gate.
  • out_xor: output of a 100-input XOR gate.

此时,用缩位运算符就比较方便:

module top_module( input [99:0] in,output out_and,output out_or,output out_xor
);assign out_and = ∈assign out_or = |in;assign out_xor = ^in;endmodule

代入HDLBits中验证:

Reduction在奇偶校验中的应用

通过不完善的通道传输数据时,奇偶校验通常用作检测错误的简单方法。 创建一个电路,该电路将计算8位字节的奇偶校验位(这将在字节中添加第9位)。 我们将使用“偶数”奇偶校验,其中奇偶校验位只是所有8个数据位的XOR。

对于偶校验来说,通过将所有校验位进行异或,如果最后结果为1,则代表传输无误,否则有误。

这是什么意思呢?

如果一个变量中有偶数位1,则所有位进行异或,肯定得到1,否则得到0;
如下进行验证:

module top_module (input [7:0] in,output parity); assign parity = ^in;endmodule

很简单,缩位运算符很方便,如果能在该用它的地方用到它,会简化很多。


参考链接

HDLBits 系列(6)(Reduction)缩位运算符相关推荐

  1. HDLBits 系列(0)专题目录

    本篇博文是近来总结HDLBits系列的目录,点击蓝色字体即可进入查看具体内容. HDLBits 系列(1)从HDLBits中获取灵感,整顿自己,稳步前行 HDLBits 系列(2)如何避免生成锁存器? ...

  2. HDLBits 系列(31)Serial Receiver and Datapath

    目录 序言 原题复现 我的设计 序言 上篇博文: HDLBits 系列(30)Serial Receiver 写了串行接收器如何接收8位串行数据,正确接收8位串行数据后给一个接收完毕标志信号,这篇博文 ...

  3. HDLBits 系列(29)PS/2 mouse protocol(PS/2 packet parser and datapath)

    目录 序言 原题传送 题目解释 我的设计 序言 上篇博客: HDLBits 系列(28)PS/2 mouse protocol(PS/2 packet parser) 只对PS/2 mouse pro ...

  4. HDLBits 系列(40)如何写 TestBench 文件?

    目录 序言 变量定义 时钟设计 设计输入 模块例化 实战演练 序言 由于入门的测试文件很简单,所以一直以来也都是直接给出测试文件,直到今天才想着去总结一个测试文件的写法.这篇博客将根据HDLBits的 ...

  5. HDLBits 系列(5)让三元条件运算符(?:)在你的设计中发挥作用

    目录 抛砖引玉 举例练习 写在最后 抛砖引玉 Verilog具有三元条件运算符(?:)运用得当,可以起到简化代码的作用,使得代码的易读性提高,但是运用不当,也会背道而驰. 下面讲讲Verilog具有三 ...

  6. HDLBits 系列(1)从HDLBits中获取灵感,整顿自己,稳步前行

    目录 前言 对HDLBits的夸赞 最后想说的话 前言 坚持一件事情很难系列,有些事情看似简单,但是坚持做下去确实会有所收获,举个不恰当的例子,总搞一些自己觉得难的东西,会让自己的博客断更,困难的东西 ...

  7. c++宏定义常量为什么使用移位_干货 | C语言系列3——常量,运算符,常用数学函数.........

    本期总结 1.符号常量和const常量: 2.运算符: 3.输入与输出: 4.常用数学函数. 往期回顾 干货 | C语言系列1--编程软件与做题平台 干货 | C语言系列2--程序结构与变量 符号常量 ...

  8. HDLBits 系列(44)状态机补录

    文章目录 前言 原题复现 题目解析 状态转移图 设计文件 前言 今天补一个状态机的题目,也是这个系列的题目之一,但是由于之前对题目有点疑惑,今天得到博友反馈,让我明白了这个题目的意思,记录一下. 原题 ...

  9. HDLBits 系列(ending)此系列我的答案

    这是这个系列博客的最后一篇,我将我的账号共享下,大家可以通过登录我的账号查看我做这些题的答案! 登录处: 账号:ljs521615 密码:hdlbits521615 登录完成后,任意选择一个话题: 例 ...

最新文章

  1. 第十六届全国大学智能车全国总决赛竞赛闭幕式
  2. Quartus调用Modelsim SE避免重复编译Altera器件库的方法
  3. 用场景来规划测试工作
  4. set和multiset容器简介
  5. git怎么读_【杂谈】怎么使用有三AI完成系统性学习并赚钱
  6. 我同事今天被裁了,但我却涨了1万工资!
  7. 团体程序设计天梯赛-练习集-L1-036. A乘以B
  8. jqgrid学习(二)
  9. 二分(POJ - 3273 )
  10. 汉字Unicode编码表
  11. win7 64位 系统安装mysql_5.7.19(msvce120 or DirectXRepair35.zip修复)
  12. 论文解读-用于人口流动数据模拟的人口流动模型
  13. xp系统打开计算机配置文件,XP系统启动Windows零配置(WZC)服务教程(图文)
  14. 数组和集合有什么区别
  15. v6使用手册 天正电气t20_电气工程设计软件-T20天正电气软件下载 v6.0官方版--pc6下载站...
  16. HTML期末学生大作业:中华传统文化【苏绣手工艺】带psd设计图(15页)
  17. 3W字,Docker 从入门到精通
  18. html 中的版权符号 : 圆圈C
  19. 计算机工资表2017,薪级工资对照表2017年最新
  20. python另存为对话框_python – 另存为文件对话框 – 如何不允许覆盖

热门文章

  1. EXTJS 常用控件的使用
  2. “醒事”就在一瞬间 --- 一个真实的故事 (文PPT)
  3. python数据导入一个列表_Python基础数据类型list 列表
  4. java.io.File中mkdir()和mkdirs()的区别
  5. JSONObject.fromObject--JSON与对象的转换
  6. oracle的shell命令,Shell实现的Oracle启动脚本分享
  7. 职称计算机word模拟题,2015职称计算机考试Word2003模拟题及答案
  8. 图像修复中的方法--AI智能.
  9. ADA4531 fA级静电放大器
  10. python django 优势_那么多人选择Python,它的优势,缺点有哪些?