首页 > 其他分享 >【FPGA】Verilog 实践:奇偶校验生成器 | 奇偶校验检查器 | 2-bit 二进制比较器

【FPGA】Verilog 实践:奇偶校验生成器 | 奇偶校验检查器 | 2-bit 二进制比较器

时间:2023-05-21 11:03:30浏览次数:28  
标签:aa bb FPGA cc dd initial 生成器 奇偶校验 bit


【FPGA】Verilog 实践:奇偶校验生成器 | 奇偶校验检查器 | 2-bit 二进制比较器_Verilog

写在前面:Parity bit Generator/Checker 和 2bit binary comparator 的了解和确认动作。使用Verilog 进行 Parity bit Generator/Checker、2bit binary,实施 comparator,生成输入信号后确认通过模拟器实现的每个 Gate 操作,通过 FPGA 验证 Verilog 实现的电路的行为。

Ⅰ. 前置知识

0x00 Parity bit 生成器

传输二进制信息时使用 parity bit 来检测error。 

在发送二进制数据时,增加一个称为 parity bit 的 1-bit 作为发送方法,如果 binary 数据的 1bit 的数目是奇数,则 parity bit 为 1,如果 1bit 的数目是偶数,则 parity bit 为 0。因此,总体上总是具有偶数个 1bit 的传输数据形式,从而将其传输到目的地。

【FPGA】Verilog 实践:奇偶校验生成器 | 奇偶校验检查器 | 2-bit 二进制比较器_fpga开发_02

0x01 Parity bit 检查器

在接收器中检查奇偶校验的电路称为奇偶校验器。

奇偶校验校验器的输出用奇偶校验(

【FPGA】Verilog 实践:奇偶校验生成器 | 奇偶校验检查器 | 2-bit 二进制比较器_生成器_03

)表示,如果1为奇数(如果有错误),则为1;如果1为偶数或0,则 

【FPGA】Verilog 实践:奇偶校验生成器 | 奇偶校验检查器 | 2-bit 二进制比较器_生成器_03

为 0。

【FPGA】Verilog 实践:奇偶校验生成器 | 奇偶校验检查器 | 2-bit 二进制比较器_真值表_05

0x02  2-bit 二进制比较器

当有 2-bit 二进制数

【FPGA】Verilog 实践:奇偶校验生成器 | 奇偶校验检查器 | 2-bit 二进制比较器_真值表_06

 时,如果

A>B

 则输出 

【FPGA】Verilog 实践:奇偶校验生成器 | 奇偶校验检查器 | 2-bit 二进制比较器_fpga开发_08

 ;如果

【FPGA】Verilog 实践:奇偶校验生成器 | 奇偶校验检查器 | 2-bit 二进制比较器_fpga开发_09

,则输出 

【FPGA】Verilog 实践:奇偶校验生成器 | 奇偶校验检查器 | 2-bit 二进制比较器_fpga开发_10

;如果

【FPGA】Verilog 实践:奇偶校验生成器 | 奇偶校验检查器 | 2-bit 二进制比较器_Verilog_11

,则输出

【FPGA】Verilog 实践:奇偶校验生成器 | 奇偶校验检查器 | 2-bit 二进制比较器_真值表_12

 为 1,组合逻辑电路。

【FPGA】Verilog 实践:奇偶校验生成器 | 奇偶校验检查器 | 2-bit 二进制比较器_生成器_13

 

Ⅱ.  练习(Assignment)

0x00 实现 Parity bit 生成器

画出卡诺图完成真值表,编写 Verilog 代码,通过 Simulation 打印出结果(8,4,2,1)

【FPGA】Verilog 实践:奇偶校验生成器 | 奇偶校验检查器 | 2-bit 二进制比较器_Verilog_14

真值表:

In A

In B

In C

In D

Out E

0

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

0

1

1

0

0

1

0

0

1

0

1

0

1

0

0

1

1

0

0

0

1

1

1

1

1

0

0

0

1

1

0

0

1

0

1

0

1

0

0

1

0

1

1

1

1

1

0

0

0

1

1

0

1

1

1

1

1

0

1

1

1

1

1

0

卡诺图:

ab  cd

00

01

11

10

00

0

1

0

1

01

1

0

1

0

11

0

1

0

1

10

1

0

1

0

标签:aa,bb,FPGA,cc,dd,initial,生成器,奇偶校验,bit
From: https://blog.51cto.com/u_15153240/6318743

相关文章

  • 标准库中的生成器函数——用于重新排列元素的生成器函数
         1注意,itertools.groupby假定输入的可迭代对象要使用分组标准排序;即使不排序,至少也要使用指定的标准分组各个元素。  1#itertools.groupby函数的用法2importitertools3456k1=list(itertools.groupby('LLLLAAGGG'))7print('k1:',k......
  • 标准库中的生成器函数——用于扩展元素的生成器函数
      1  combinations:组合数最少的;组合数的下限,重复没有意义(所以不存在AA,BB,CC这种组合),元素的顺序也没意义(AB和BA是一种组合);product:返回笛卡尔积,组合数最多的,组合数的上限,重复和元素的顺序都有意义;combinations_with_replacement:重复有意义(所以存在AA,BB,CC这种组合),元......
  • 标准库中的生成器函数——用于合并的生成器函数
      1 1importitertools234b=list(itertools.chain('ABC',range(2),[55,434,665,86]))5print('b:',b)#['A','B','C',0,1,55,434,665,86]67b1=list(enumerate("ABC"))......
  • 标准库中的生成器函数——用于映射的生成器函数
      aa 1#演示itertools.accumulate生成器函数23importitertools4importoperator567sample=[5,4,2,8,7,6,3,0,9,1]89e1=list(itertools.accumulate(sample))10print("默认求累计和:",e1)#[5,9,11,19,26,32,35,35,44,......
  • 标准库中的生成器函数——用于过滤的生成器函数
    用于过滤的生成器函数:从输入的可迭代对象中产出元素的子集,而且不修改元素。 importitertoolsdefvowel(c):returnc.lower()in'aeiou'#返回所有真值对应的元素e1=list(filter(vowel,'Aardvark'))print("返回所有真值位置对应的元素:",e1)#['A','a','......
  • 基于FPGA的Hamming编译码verilog开发实现,包括testbench测试程序
    1.算法仿真效果vivado2019.2仿真结果如下:    2.算法涉及理论知识概要        汉明码(HammingCode),是在电信领域的一种线性调试码,以发明者理查德·卫斯里·汉明的名字命名。汉明码在传输的消息流中插入验证码,当计算机存储或移动数据时,可能会产生数据位错误,以侦......
  • 分享一下mybatisPlus新代码生成器3.5.1以上
    pom引入:有MP了就不要再引入mybatis了,会出bug的<!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</......
  • 使用命令行方式program Intel FPGA程序
    命令行下载程序方式右键打开Windows终端(管理员),切换到待下载程序所在目录下,输入指令:quartus_pgm-cUSB-BlasterII-mjtag-o"bpv;XXX.pof",这里的XXX.pof就是待下载程序的完整名称-c代表指定对应的cable名称,如果不确定cable名称,在终端输入jtagconfig-n就可以查看到,如下:-m......
  • 一张图解析FastAdmin中的FormBuilder表单生成器
     功能描述在使用FastAdmin一键生成CRUD后,默认的生成的都是原生HTML的组件代码,会有许多不熟悉前端的小伙伴改动起来会比较费劲。其实在FastAdmin中有一个简单的FormBuilder,但是它只能生成一些简单的文本框或下拉框,像FastAdmin中常用的动态下拉框、城市选择框、联动框,它就没法实......
  • 基于FPGA的FIR低通滤波器verilog开发,包含testbench测试程序,输入噪声信号使用MATLAB
    1.算法仿真效果VIVADO2019.2/matlab2022a仿真结果如下:运行matlab:将matlab得到的数据文件保存到FPGA的project_13.sim\sim_1\behav\xsim路径,测试仿真时,可以自动调用matlab任意产生的测试数据。rtl:2.算法涉及理论知识概要FIR(FiniteImpulseResponse)滤波器:有限长单位冲激......