8位奇偶校验电路[1]

合集下载

第五章VHDL的LOOP语句

第五章VHDL的LOOP语句
NEXT语句的书写格式为:
NEXT[标号][WHEN 条件]
该语句主要用于LOOP语句内部的 循环控制。当NEXT语句后不跟[标号], NEXT语句作用于当前最内层循环,即从 LOOP语句的起始位置进入下一次循环。 若NEXT语句不跟[WHEN 条件],NEXT 语句立即无条件跳出本次循环,而进入 下一次循环。
loop语句
LOOP语句就是循环语句,它可
以使包含的一组顺序语句被循环
执行,其执行的次数受迭代算法
控制。在VHDL中常用来描述迭 例如:
代电路的行为。
1.单个LOOP语句
loop1:LOOP
单个LOOP语句的书写格式如下: WAIT UNTIL clk=‘1’;
[标号:] LOOP 顺序语句
END LOOP[标号];
end encoder; architecture one of encoder is signal outs:std_logic_vector(2 downto 0); begin
outs<="111" when H='1' else "110" when G='1' else "101" when F='1' else "100" when E='1' else "011" when D='1' else "010" when C='1' else "001" when B='1' else "000" when A='1' else "XXX";

校验方法

校验方法

3、生成多项式G(x)的确定
G(x)是一个约定的除数,用来产生校验码。 从检错和纠错的要求出发,它并不是随意选择的, 它应满足下列要求: 任何一位发生错误都会使余数不为0 不同位发生错误应使余数不同 余数继续模2 除,应使余数循环
4.CRC的译码与纠错
将收到的循环校验码用约定的生成多项式G(x)去除,如果
余数将按CRC码的查错表顺序循环。
例如第七位出错,余数将为001,补0后再除,第二次余数
为010,以后依次为100,011,...,反复循环,这是一个有 价值的特点。如果我们在求出余数不为0后,一边对余数补
0继续做模2除,同时让被检错的校验码字循环左移。 CRC
码的查错表说明当出现余数(101)时,出错位也移到A1位 置、通过异或门将它纠正后在下一次移位时送回A1 。继续 移满一个循环(对7、4码共移七次),就得到一个纠正后 的码字。这样我们就不必像海明校验那样用译码电路对每 一位提供纠正条件、当位数增多时循环码校验能有效地降 低硬件代价。
例题:采用4位校验位、偶校验方式,写出 10100110的海明码。
解:已知D8D7D6D5D4D3D2D1=10100110 P1=D1⊕D2⊕D4⊕D5⊕D7 =1 (1)
P2=D1⊕D3⊕D4⊕D6⊕D7 =0 (2) P3= D2⊕D3⊕D4⊕D8 =1 (3) P4= D5⊕D6⊕D7⊕D8 =0 (4) P5=D1⊕D2⊕D3⊕D4⊕D5⊕D6⊕D7⊕D8 ⊕P4⊕P3⊕P2⊕P1 =0 (5) 发送方发送P5D8D7D6D5P4D4D3D2P3D1P2P1=0101000111001
101
除法:当被除数最高位为1时,商1,否则商0。
CRC整个编码长度为 n=k+r 位,故CRC码又叫(n,k)码。 其编码方法如下:

串行通信起始比特、数据、奇偶校验和停止位

串行通信起始比特、数据、奇偶校验和停止位

高海拔地区330kV架空输电线路绝缘子片数选择发表时间:2017-12-06T09:54:24.003Z 来源:《电力设备》2017年第23期作者:刘澜[导读] 摘要:讨论了330kV交流输电线路绝缘子串片数选择的方法提出了330kV交流输电线路由工频电压下爬电比距法来确定绝缘子串片数一般可满足线路在污秽条件下及操作冲击电压、雷电冲击电压条件下不发生闪络现象。

(中国电建集团西北勘测设计研究院有限公司 710065)摘要:讨论了330kV交流输电线路绝缘子串片数选择的方法提出了330kV交流输电线路由工频电压下爬电比距法来确定绝缘子串片数一般可满足线路在污秽条件下及操作冲击电压、雷电冲击电压条件下不发生闪络现象。

关键词:输电线路绝缘子爬电比距闪络电压海拔修正。

0 引言架空送电线路的绝缘配合设计目的是要解决杆塔上和档距中各种可能放电途径的绝缘选择和相互配合的问题,在工程设计中,一般依据《交流电气装置的过电压保护和绝缘配合设计规范》(GB/T 50064-2014)、《110~750kV架空输电线路设计规范》(GB50545-2010)、《电力工程高压送电线路设计手册》中的研究结论和方法进行绝缘配合。

其中最关键的便是绝缘子串(联)的片数(串长)选择,应满足在长期工作电压下不发生污闪,在操作过电压下不发生湿闪,并具有一定的雷电冲击耐受强度,使线路能在工频电压、操作过电压和雷电过电压等各种条件下安全可靠运行。

1 不同工况下选取绝缘子串片数方法1)按工频电压选择绝缘子片数在工频电压作用下,选择绝缘子片数的方法一般有两种:一种是按各类污秽条件下绝缘子串的爬电比距(l)来选择;一种是按各类污秽条件下绝缘子串的成串污闪电压来选择。

这两种方法的出发点都是以一定的线路允许的污闪事故率为基础。

而且这两种方法都需要先确定线路所处地区的污秽等级。

在工程设计中,污区划分和绝缘配合执行《电力系统污区分级与外绝缘选择标准》Q/GDW 152-2006,根据各省电力公司电力系统污区分布图来确定线路所处地区污秽等级。

基于VHDL语言的八位时序奇偶校验器的设计

基于VHDL语言的八位时序奇偶校验器的设计

eg (o k t n de l )h c c e
p e e t sa e = n x — t t ; rs n_ tt< e t sa e
e di n £ e d p o e sfrt n rc s is ; sc n :rc s pe e ts a e e o dpo e s r sn t t ,
_
es le
ne t x

sae = 3 tt< s ; b 8 <= : e di n
as ) i bg en i
wa n n <= 0 ; rig
c s r s n sa e i a e p e e t tt s
( 3 4s , , , , ,l , s, , s B s s sO s 56789
n x t t < s ; e t sa e = 4 b a <= :
种 检 s ; rs n ~ t t < O e sfrsn li ii g
_
奇 偶校 验 码 是 一 种 通 过 增 加 冗余 位 使 得 码 字 中 ” ” 个 数 恒 为 奇 1的 数 或偶 数 的编 码 方 法 。其 局 限性 是 只 能 检 测 出 奇 数 个 错 误 . 由 于 其 但 简 单 方便 。 数 据 传 输 的 差 错 控 制 上 仍 然 得 到 广 泛 的 使 用 。 以 前 的 奇 在 偶校 验 器 太 多 采 用 通 用 逻 辑 元 器 件 进 行 设 计 。 致 了 设 计 和 调 试 过 程 导 冗 长 、 统稳 定 性 不 高 , 常 不 便 。如 今 , 着 以 F G 和 C L 为 代 系 非 随 PA PD 表 的可 编 程 A I SC技术 的 日趋 成 熟 和完 善 。用 户 可 以完 全 根 据 自 己 的 需 要 . E A 技 术 作 为 开 发 手 段 。 一 块 F GA或 C L 以 D 用 P P D设 计 出 符 合 自已需 要 的 芯 片 。

VHDL复习题

VHDL复习题

例题:十进制计数器(模十计数器)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT10 ISPORT (CLK,RST,EN:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC );END COUNT10;ARCHITECTURE behave OF COUNT10 ISBEGINPROCESS(CLK, RST, EN)VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINIF RST = '1' THEN CQI := (OTHERS =>'0') ;ELSIF CLK'EVENT AND CLK='1' THENIF EN = '1' THENIF CQI < 9 THEN CQI := CQI + 1;ELSE CQI := (OTHERS =>'0');END IF;END IF;END IF;IF CQI = 9 THEN COUT <= '1';ELSE COUT <= '0';END IF;CQ <= CQI;END PROCESS;END behave;十进制计数器(模十计数器)library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity count10 isPort ( cp : in std_logic; rst : in std_logic;q : out std_logic_vector(3 downto 0)); end count10;architecture Behavioral of count10 issignal qn: std_logic_vector(3 downto 0);beginprocess(cp,rst)beginif (rst='1') thenqn<="0000";elsif (cp'event and cp='1')thenif (qn="1001") thenqn<="0000";else qn<=qn+1;end if;end if;end process;q<=qn;end Behavioral;3进制计数器(模三计数器)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity counter3 isport(clk,reset,en:in std_logic;qa,qb:out std_logic);end counter3;architecture behavior of counter3 is signal count:std_logic_vector(1 downto 0); beginprocess(reset,clk)beginif reset='1'thencount(1 downto 0)<="00";elseif(clk 'event and clk='1')thenif(en='1')thenif(count="10")thencount<="00";elsecount<=count+1;end if;end if;end if;end if;end process;qa<=count(0);qb<=count(1);end behavior;计数器:带允许端的模12计数器VHDL设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity COUNT12 isport (clk,clr,en: IN STD_LOGIC;qa,qb,qc,qd: OUT STD_LOGIC);End COUNT12 ;Architecture RTL of COUNT12 isSignal count_4 : STD_LOGIC_VECTOR(3 downto 0);Beginqa<=count_4(0);qb<=count_4(1);qc<=count_4(2);qd<=count_4(3);Process (clk,clr)beginif (clr=‘1’) thencoun_4<=“0000”;elsif (clk’event and clk=‘1’) thenif (en=‘1’) thenif (count_4=“1011” )thencount_4<=“0000”;elsecoun_4<=count_4+’1’ ;end if;end if;end if;end process;End rtl;带有WHEN OTHERS项的3—8译码器的行为描述的例子。

奇偶校验

奇偶校验

为了系统的可靠性,对于位数较少,电路较简单的应用,可以采用奇偶校验的方法。

奇校验是通过增加一位校验位的逻辑取值,在源端将原数据代码中为1的位数形成奇数,然后在宿端使用该代码时,连同校验位一起检查为1的位数是否是奇数,做出进一步操作的决定。

奇偶校验只能检查一位错误,且没有纠错的能力。

偶校验道理与奇校验相同,只是将校验位连同原数据代码中为1的位数形成偶数。

奇偶校验器多设计成九位二进制数,以适应一个字节,一个ASCII代码的应用要求。

奇偶校验是一种荣誉编码校验,在存储器中是按存储单元为单位进行的,是依靠硬件实现的,因而适时性强,但这种校验方法只能发现奇数个错,如果数据发生偶数位个错,由于不影响码子的奇偶性质,因而不能发现。

奇偶校验是一种校验代码传输正确性的方法。

根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。

采用奇数的称为奇校验,反之,称为偶校验。

采用何种校验是事先规定好的。

通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。

若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。

与一段信息关联的冗余信息。

在WindowsNTServer中,带奇偶校验的带区集意味着每行有一个附加的奇偶校验带区。

因此,必须使用至少三个(而不是两个)磁盘才能考虑该附加的奇偶校验信息。

奇偶校验带区包含该带区内数据的XOR(称为排它性“或”的布尔操作)。

重新生成失败的磁盘时,WindowsNTServer将使用这些带区中与完好磁盘上数据关联的奇偶校验信息重新在失败盘上创建数据。

请参阅容错;带区集;带奇偶校验的带区集奇偶校验能够检测出信息传输过程中的部分误码(1位误码能检出,2位及2位以上误码不能检出),同时,它不能纠错。

在发现错误后,只能要求重发。

但由于其实现简单,仍得到了广泛使用。

为了能检测和纠正内存软错误,首先出现的是内存“奇偶校验”。

内存中最小的单位是比特,也称为“位”,位只有两种状态分别以1和0来标示,每8个连续的比特叫做一个字节(byte)。

主要描述语句

主要描述语句
这种语句的书写格式为: TF 条件 THEN 顺序语句 ELSE 顺序语句 END IF; 当IF条件成立时,程序执行THEN和ELSE之间的顺序语句部
分;当IF语句的条件得不到满足时,程序执行ELSE和END IF之间
的顺序处理语句。即依据IF所指定的条件是否满足,程序可以进行 两条不同的执行路径。
例[1] CASE语句使用 CASE command IS WHEN “00”=> c <= a; WHEN “01”=> c <= b; WHEN “10”=> c <= e;
--适合4选1数据选择器
WHEN “11”=> c <= f;
WHEN OTHERS => NULL; END CASE; --无效
例[3] 3-8译码器。
LIBRARY IEEE; USE IEEE. STD_LOGIC_1164.ALL; ENTITY decoder3_8 IS PORT(a,b,c,g1,g2a,g2b:IN STD_LOGIC; y:OUT STD_LOGIC_VECTOR (7 DOWNTO 0); END decoder3_8; ARCHITECTURE rtl OF decoder3_8 IS SIGNAL indata:STD_LOGIC_VECTOR (2 DOWNTO 0); BEGIN indata <= c & b & a; PROCESS(indata,g1,g2a,g2b) BEGIN
顺序语句
ELSEIF 顺序语句
ELSEIF
顺序语句 ┇
ELSE
顺序语句 END IF;
这种多选择控制的IF语句,实际上就是条件嵌套。它设置 了多个条件,当满足所设置的多个条件之一时,就执行该条件 后的顺序处理语句。当所有设置的条件都不满足时,程序执行

奇偶校验器

奇偶校验器

奇偶校验器一. 实验目的1. 理解奇偶校验码.2. 设计并实现一个8位代码奇偶校验器.二、概述与原理1.奇偶校验码是一种最简单,最直接。

应用最广泛的检错码,他的码距为2,因此他只能检出一位错。

实现方法是:由若干位有效信息,再加上一个二进制组成校验码。

检验位的取值(0或1)将是整个校验码中“1”的个数为奇数或偶数。

但校验码的取值使整个校验码中“1”的个数为奇数时,称为奇校验;当“1”的个数为偶数时为偶校验。

在实际中应用中多采用奇校验,因为奇校验中不存在全为“0”的代码,因此在某些场合下更易于辨别。

2.校验位的形成:当吧一个字节的代码D7~D0写入主存时,就同时将它们送往奇偶校验逻辑电路,该电路产生的“奇形成”信号就是校验位。

它将8位代码一起作为奇校验码写入主存。

若D7~D0中有偶数个“1”,则形成“奇形成”,若D7~D0中有奇数个“1”,则“奇形成”等于03.校验检测:校验检测是将读出的9位代码(8位信号位和一位校验码)同时送入奇偶校验电路检测。

若读出代码没有错误,则“奇偶检验出错”等于0;若读出代码在某位上出现错误。

则“奇偶校验出错”等于1,表示这个9位代码中一定有某一位出现错误,但是具体的错误位置不能确定。

三、实验步骤1.下载并安装multisim软件,打开创建一个设计页面2.放置元器件(1个5V直流电源,10个开关,10个10千欧和一个300欧的电阻,17个异或门,2个非门,一个LED显示灯,底线)3。

根据实验原理设计并连接电路如下图所示六、总结与体会为了系统的可靠性,对于位数较少,电路较简单的应用,可以采用奇偶校验的方法。

奇校验是通过增加一位校验位的逻辑取值,在源端将原数据代码中为1的位数形成奇数,然后在宿端使用该代码时,连同校验位一起检查为1的位数是否是奇数,做出进一步操作的决定。

奇偶校验只能检查一位错误,且没有纠错的能力。

偶校验道理与奇校验相同,只是将校验位连同原数据代码中为1的位数形成偶数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告
学院:专业:班级:
姓名学号实验组实验时间指导教师成绩实验项目名称8位的奇偶校验
实验目的
1.学习组合逻辑电路、编码器的功能与定义,学习Verilog和VHDL语言
2.熟悉利用Quartus II开发数字电路的基本流程和Quartus II软件的相关操作
3.学会使用Vector Wave波形仿真




按照老师的要求完成实验,编写实验报告实
验原理
此奇偶校验电路时用来计算一个八位数里存在奇数个1还是偶数个1.本实验采用与tmp=0异或的方法来实现计数。

如果结果输出为1,则有奇数
个一。

输出结果为零则有偶数个一。





软件:Altera Quartus II 9.0 集成开发环境。

实验步骤 1.选择“开始”→“所有程序”→“Altera”→“Quartus II 9.0”→“Quartus II 9.0(32bit)”,启动软件。

2.选择“File”→“New Project Wizard”,出现“Introduction”页面,如图所示,该页面介绍所要完成的具体任务。

3.单击“Next”按钮,进入工程名称的设定、工作目录的选择。

4.在对话框中第一行选择工程路径;第二行输入工程名,第三行输入顶
层文件的实体名(注意:工程名必须与顶层实体名相同,工程目录可以随意设置,但必须是英文的目录,工程名跟顶层实体名必须也是英文开头。

不要将文件夹设在计算机已有的安装目录中,更不要将工程文件直接放在安装目录中。

文件夹所在的路径名和文件夹名不能用中文,不能用空格,不能用括
号,也不能以数字开头)
6.新建设计文件,选择“File|New”,在New对话框中选择Device Design
Files下的Verilog File,单击OK,完成新建设计文件。

7.在新建设计文件中输入Verilog程序.
8.结果仿真




编写四选一电路的VHDL代码并仿真,编译下载验证
实验数据一:试验程序:
LIBRARY IEEE;
USE IEEE. STD_LOGIC_1164.ALL;
ENTITY parity_check IS
PORT(a:IN STD_LOGIC_VECTOR (7 DOWNTO 0);
y:OUT STD_LOGIC);
END parity_check ;
ARCHITECTURE rtl OF parity_check IS
BEGIN
PROCESS(a)
V ARIABLE tmp:STD_LOGIC
BEGIN
tmp:=‘0’;
FOR i IN 0 TO 7 LOOP
tmp:= tmp XOR a(i);
END LOOP;
y <= tmp;- -y=1,a为奇数个‘1’。

y=0,a为偶数个‘1’。

END PROCESS;
END rtl;

验总结
在实验中学习了组合逻辑电路、编码器的功能与定义,学习Verilog和VHDL语言,同时熟悉利用Quartus II开发数字电路的基本流程和Quartus II 软件的相关操作,并学会使用Vector Wave波形仿真。






见签名:年月日。

相关文档
最新文档