搜档网
当前位置:搜档网 › 奇偶校验实验报告

奇偶校验实验报告

奇偶校验实验报告
奇偶校验实验报告

竭诚为您提供优质文档/双击可除

奇偶校验实验报告

篇一:奇偶校验

实验项目四:数据的校验(2学时)

一、实验目的:

1.了解数据的校验机制。

*2.掌握海明码校验实施过程(选做)。

*3.掌握循环冗余码校验实施过程(选做)。

二、实验要求:

1.设计一个程序模拟奇偶校验实施过程(提示:主函数、发送函数、传输函数、校验函数)。

首先奇偶校验过程的基本过程:奇偶校验位有两种类型:偶校验位与奇校验位。如果一组给定数据位中1的个数是奇数,那么偶校验位就置为1,从而使得总的1的个数是偶数。如果给定一组数据位中1的个数是偶数,那么奇校验位就置为1,使得总的1的个数是奇数。偶校验实际上是循环冗余

校验的一个特例,通过多项式x+1得到1位cRc。

*2.设计一个程序模拟海明码校验实施过程(提示:主

函数、发送函数、传输函数、校验函数、纠错函数)。

*3.设计一个程序模拟循环冗余码校验实施过程(提示:主函数、发送函数、传输函数、校验函数、纠错函数)。

三、实验报告:

1.给出源程序和执行结果。

#include

#include

#include

voidproduct();

voidtrans();

voidpop();

intp1,p2;

inta[8]={0};

intmain()

{

product();//产生一个随机的八位二进制的数

trans();//设置传输出错一位或者没有出错的情况

pop();//判断有无出错的情况

return0;

}

voidproduct()

{

inti,data;intcount1=0;srand((unsigned)time(0));data =0+rand()%128;//产生0-127的随机数printf("随机的产生一个128以内的十进制数为%d\n",data);for(i=0;i

if(count1%2==0)//奇校验奇数个1校验位为0,偶数个1为1a[7]=1;}for(i=0;i else

a[7]=0;

p1=a[7];

printf("初始二进制校验位放在最高位它

为:%d\n",p1);

printf("产生随机二进制数为");

/*

while(i>=0)

printf("%d",a[--i]);*/

for(i=7;i>=0;--i)

{

printf("%d",a[i]);

}

printf("\n");

}

voidtrans()

{

srand((unsigned)time(0));

i=0+rand()%9;//产生0-8的随机数

if(i==0)

printf("机器内部设置传输过程中没有出错\n");

else

{

a[i-1]=(a[i-1]==0)?1:0;

printf("传输过程将机器内部的数据进行了一位改动,改动位

为%d\n",i);

}

voidpop()

{

printf("接收数据计算出的校验位

为:%d\n",p2);if(p2!=a[7])printf("通过校验位p1与p2的比较得出传输过程中数据出错了。

if(count2%2==0)p2=1;inti,count2=0;printf("接收数据为:");for(i=7;i>=0;i--){}printf("\n");//求接收数据的偶校验位

for(i=6;i>=0;i--){}if(a[i]==1)count2++;printf("%d", a[i]);}elsep2=0;

elseprintf("通过校验位p1与p2的比较得出在传输的过程中数据没有出错!\n");

}

篇二:实验报告

实验一

1.ADs1.2下建立工程

(1)运行ADs1.2集成开发环境(codewarriorforARmDevelopersuite),点击File|new,在new对话框中,选择project栏,其中共有7项,ARmexecutableImage是ARm的通用模板。选中它即可生成ARm的执行文件。还要在,projectname栏中输入项目的名称,以及在Location中输入其存放的位置。按确定保存项目。

(2)在新建的工程中,选择Debug版本,如图,使用edit|Debugsettings菜单对Debug版本进行参数设置。

(3)在如图2-1-3中,点击Debugsetting按钮,

图2-1-3

(4)在如图2-1-5中,点击ARmAssembler,在Architectureorprocesser

2-1-5

栏中选ARm920T。这是要编译的cpu核。

(5)在如图2-1-6中,点击ARmccompliler,在Architectureorprocesser栏中选ARm920T。这是要编译的cpu核。

图2-1-6

(6)点击ARmlinker,在outpur栏中设定程序的代码段地址,以及数据使用

的地址。图中的Robase栏中填写程序代码存放的起始地址,Rwbase栏中填写程序数据存放的起始地址。该地址是属于sDRAm的地址。

(7)在如图2-1-10中,即在Debugsetting对话框中点击左栏的ARmfromeLF

项,在outputfilename栏中设置输出文件名*.bin,前缀名可以自己取,在outputformat栏中选择plainbinary,这是设置要下载到flash中的二进制文件。

图2-1-10

(8)到此,在ADs1.2中的基本设置已经完成,可以将该新建的空的项目文件作为模板保存起来。首先,要将该项目工程文件改一个合适的名字,如s3c2410ARm.mcp等,然后,在ADs1.2软件安装的目录下的stationary目录下新建一个合适的模板目录名,如,s3c2410ARmexecutableImage,再将刚刚设置完的s3c2410ARm.mcp项目文件存放到该目录

集成电路设计实验报告

集成电路设计 实验报告 时间:2011年12月

实验一原理图设计 一、实验目的 1.学会使用Unix操作系统 2.学会使用CADENCE的SCHEMA TIC COMPOSOR软件 二:实验内容 使用schematic软件,设计出D触发器,设置好参数。 二、实验步骤 1、在桌面上点击Xstart图标 2、在User name:一栏中填入用户名,在Host:中填入IP地址,在Password:一栏中填入 用户密码,在protocol:中选择telnet类型 3、点击菜单上的Run!,即可进入该用户unix界面 4、系统中用户名为“test9”,密码为test123456 5、在命令行中(提示符后,如:test22>)键入以下命令 icfb&↙(回车键),其中& 表示后台工作,调出Cadence软件。 出现的主窗口所示: 6、建立库(library):窗口分Library和Technology File两部分。Library部分有Name和Directory 两项,分别输入要建立的Library的名称和路径。如果只建立进行SPICE模拟的线路图,Technology部分选择Don’t need a techfile选项。如果在库中要创立掩模版或其它的物理数据(即要建立除了schematic外的一些view),则须选择Compile a new techfile(建立新的techfile)或Attach to an existing techfile(使用原有的techfile)。 7、建立单元文件(cell):在Library Name中选择存放新文件的库,在Cell Name中输 入名称,然后在Tool选项中选择Composer-Schematic工具(进行SPICE模拟),在View Name中就会自动填上相应的View Name—schematic。当然在Tool工具中还有很多别的

奇偶校验

为了系统的可靠性,对于位数较少,电路较简单的应用,可以采用奇偶校验的方法。奇校验是通过增加一位校验位的逻辑取值,在源端将原数据代码中为1的位数形成奇数,然后在宿端使用该代码时,连同校验位一起检查为1的位数是否是奇数,做出进一步操作的决定。奇偶校验只能检查一位错误,且没有纠错的能力。偶校验道理与奇校验相同,只是将校验位连同原数据代码中为1的位数形成偶数。奇偶校验器多设计成九位二进制数,以适应一个字节,一个ASCII代码的应用要求。奇偶校验是一种荣誉编码校验,在存储器中是按存储单元为单位进行的,是依靠硬件实现的,因而适时性强,但这种校验方法只能发现奇数个错,如果数据发生偶数位个错,由于不影响码子的奇偶性质,因而不能发现。 奇偶校验是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。 与一段信息关联的冗余信息。在WindowsNTServer中,带奇偶校验的带区集意味着每行有一个附加的奇偶校验带区。因此,必须使用至少三个(而不是两个)磁盘才能考虑该附加的奇偶校验信息。奇偶校验带区包含该带区内数据的XOR(称为排它性“或”的布尔操作)。重新生成失败的磁盘时,WindowsNTServer将使用这些带区中与完好磁盘上数据关联的奇偶校验信 息重新在失败盘上创建数据。请参阅容错;带区集;带奇偶校验的带区集奇偶校验能够检测出信息传输过程中的部分误码(1位误码能检出,2位及2位以上误码不能检出),同时,它不能纠错。在发现错误后,只能要求重发。但由于其实现简单,仍得到了广泛使用。 为了能检测和纠正内存软错误,首先出现的是内存“奇偶校验”。内存中最小的单位是比特,也称为“位”,位只有两种状态分别以1和0来标示,每8个连续的比特叫做一个字节(byte)。不带奇偶校验的内存每个字节只有8位,如果其某一位存储了错误的值,就会导致其存储的相应数据发生变化,进而导致应用程序发生错误。而奇偶校验就是在每一字节(8位)之外又增加了一位作为错误检测位。在某字节中存储数据之后,在其8个位上存储的数据是固定的,因为位只能有两种状态1或0,假设存储的数据用位标示为1、1、1、0、0、1、0、1,那么把每个位相加(1+1+1+0+0+1+0+1=5),结果是奇数。对于偶校验,校验位就定义为1,反之则为0;对于奇校验,则相反。当CPU读取存储的数据时,它会再次把前8位中存储的数据相加,计算结果是否与校验位相一致。从而一定程度上能检测出内存错误,奇偶校验只能检测出错误而无法对其进行修正,同时虽然双位同时发生错误的概率相当低,但奇偶校验却无法检测出双位错误。

EDA技术试验问答题答案(基本包含)

第一章 1-1 EDA技术与ASIC设计和FPGA开发有什么关系?FPGA/CPLD在ASIC设计中有什么用途? 答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现;FPGA和CPLD是实现这一途径的主流器件。FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC。FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SoC(片上系统)和ASIC设计,以及对自动设计与自动实现最典型的诠释。FPGA/CPLD在ASIC设计中,属于可编程ASIC的逻辑器件;使设计效率大为提高,上市的时间大为缩短。 1-2与软件描述语言相比,VHDL有什么特点? P6 答:编译器将软件程序翻译成基于某种特定CPU的机器代码,这种代码仅限于这种CPU而不能移植,并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。综合器将VHDL程序转化的目标是底层的电路结构网表文件,这种满足VHDL设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。综合器在将VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。 l-3什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? P5 什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。 有哪些类型?答:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。(2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。(3)从RTL级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。(4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。 综合在电子设计自动化中的地位是什么?答:是核心地位(见图1-3)。综合器具有更复杂的工作环境,综合器在接受VHDL程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺库信息,以及获得优化综合的诸多约束条件信息;根据工艺库和约束条件信息,将VHDL程序转化成电路实现的相关信息。 1-4在EDA技术中,自顶向下的设计方法的重要意义是什么? P7~10 答:在EDA技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。 1-5 IP在EDA技术的应用和发展中的意义是什么? P11~12 答:IP核具有规范的接口协议,良好的可移植与可测试性,为系统开发提供了可靠的保证。 1-6 叙述EDA的FPGA/CPLD设计流程。P13~16 答:1.设计输入(原理图/HDL文本编辑);2.综合;3.适配;4.时序仿真与功能仿真;5.编程下载;6.硬件测试。

常用的检错码 - 奇偶校验码

3.2差错控制 3.2.2常用的检错码- 奇偶校验码 奇偶校验码是一种简单的检错码,奇偶校验码分为奇校验码和偶校验码,两者原理相同。它通过增加冗余位来使得码字中“1”的个数保持奇数或偶数。 ?无论是奇校验码还是偶校验码,其监督位只有一位; ?假设信息为为I1, I2, …, I n,对于偶校验码,校验位R可以表示为: R =I 1 ⊕I 2 ⊕Λ⊕I n ?假设信息为为I1, I2, …, I n,对于奇校验码,校验位R可以表示为: R =I 1 ⊕I 2 ⊕Λ⊕I n ⊕1 ?无论是奇校验码还是偶校验码,都只能检测出奇数个错码,而 不能检测偶数个错码。 4 4

讨论: 从检错能力、编码效率和代价等方面来评价垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验 3.2 差错控制 3.2.2 常用的检错码 - 奇偶校验码 奇偶校验在实际使用时又可分为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验等几种。 5

3.2.2常用的检错码–定比码 所谓定比码,即每个码字中“1”的个数与“0”的个数之比保持恒定, 故又名等比码或恒比码。 ?当码字长一定,每个码字所含“1”的数目都相同,“0”的数目也 都相同。 ?由于若n位码字中“1”的个数恒定为m,还可称为“n中取m”码 定比码(n中取m)的编码效率为: log C m R = ?2 n n 定比码能检测出全部奇数位错以及部分偶数位错。实际上,除了码 字中“1”变成“0”和“0”变成“1”成对出现的差错外,所有其它差 错都能被检测出来 6 4

代码“1011011”对应的多项式为x 6 + x 4 + x 3 +1 多项式“x 5 + x 4 + x 2 + x”所对应的代码为“110110” 3.2.2 常用的检错码 – 循环冗余检验 循环冗余码(Cyclic Redundancy Code ,简称CRC )是无线通信中用得最广泛的检错码,又被称为多项式码。 二进制序列多项式:任何一个由m 个二进制位组成的代码序列都可以和一个只含有0和1两个系数的m-1阶多项式建立一一对应的关系。 CRC 有关的多项式: ? 信息位多项式、冗余位多项式、码字多项式、和生成多项式 信息位1010001:K (x ) = x 6 + x 4 + 1 冗余位1101:R (x ) = x 3 + x 2 + 1; 码字10100011101: T (x ) = x 10 + x 8 + x 4 + x 3 + x 2 + 1 7

《集成电路设计》课程设计实验报告

《集成电路设计》课程设计实验报告 (前端设计部分) 课程设计题目:数字频率计 所在专业班级:电子科 作者姓名: 作者学号: 指导老师:

目录 (一)概述 2 2 一、设计要求2 二、设计原理 3 三、参量说明3 四、设计思路3 五、主要模块的功能如下4 六、4 七、程序运行及仿真结果4 八、有关用GW48-PK2中的数码管显示数据的几点说明5(三)方案分析 7 10 11

(一)概述 在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得十分重要。测量频率的方法有多种,数字频率计是其中一种。数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器,是一种用十进制数字显示被测信号频率的数字测量仪器。数字频率计基本功能是测量诸如方波等其它各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。 频率计的基本原理是应用一个频率稳定度高的时基脉冲,对比测量其它信号的频率。时基脉冲的周期越长,得到的频率值就越准确。通常情况下是计算每秒内待测信号的脉冲个数,此时我们称闸门时间是1秒。闸门时间也可以大于或小于1秒,闸门的时间越长,得到的频率值就越准确,但闸门的时间越长则每测一次频率的间隔就越长,闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。 本文内容粗略讲述了我们小组的整个设计过程及我在这个过程中的收获。讲述了数字频率计的工作原理以及各个组成部分,记述了在整个设计过程中对各个部分的设计思路、程序编写、以及对它们的调试、对调试结果的分析。 (二)设计方案 一、设计要求: ⑴设计一个数字频率计,对方波进行频率测量。 ⑵频率测量可以采用计算每秒内待测信号的脉冲个数的方法实现。

(完整版)EDA期末考试题1

1.一个项目的输入输出端口是定义在( A )1-5 ACDCD 6-10 CCACA A. 实体中;. B. 结构体中; C. 任何位置; D. 进程中。 2. MAXPLUS2中编译VHDL源程序时要求( C ) A. 文件名和实体可以不同名; B. 文件名和实体名无关; C. 文件名和实体名要相同; D. 不确定。 3. VHDL语言中变量定义的位置是(D ) A. 实体中中任何位置; B. 实体中特定位置; C. 结构体中任何位置; D. 结构体中特定位置。 4.可以不必声明而直接引用的数据类型是(C ) A. STD_LOGIC ; B. STD_LOGIC_VECTOR; C. BIT; D. ARRAY。 5. MAXPLUS2不支持的输入方式是(D ) A 文本输入;.B. 原理图输入;C. 波形输入;D. 矢量输入。 6.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是( C ) A. FPGA全称为复杂可编程逻辑器件; B. FPGA是基于乘积项结构的可编程逻辑器件; C. 基于SRAM的FPGA器件,在每次上电后必须进行一次配置; D. 在Altera公司生产的器件中,MAX7000系列属FPGA结构。 7.下面不属于顺序语句的是( C ) A. IF语句; B. LOOP语句; C. PROCESS语句; D. CASE语句。 8. VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,实体体描述的是( A ) A. 器件外部特性; B. 器件的内部功能; C. 器件的综合约束; D. 器件外部特性与内部功能。 9. 进程中的信号赋值语句,其信号更新是( C ) A. 按顺序完成; B. 比变量更快完成; C. 在进程的最后完成; D. 都不对。 10. 嵌套使用IF语句,其综合结果可实现:(A ) A. 带优先级且条件相与的逻辑电路; B. 条件相或的逻辑电路; C. 三态控制电路; D. 双向控制电路。 一、单项选择题:(20分) 1. IP核在EDA技术和开发中具有十分重要的地位;提供用VHDL等硬件描述

奇偶校验通信原理课程设计

西南科技大学通信原理设计报告 课程名称:通信原理课程设计 设计名称:奇偶校验编码仿真 姓名:王雷 学号: 班级:通信1004 指导教师:秦明伟 起止日期:2013年7月5日星期五 西南科技大学信息工程学院制

方向设计任务书 学生班级:通信1004 学生姓名:王雷学号:20105615 设计名称:奇偶校验编码仿真 起止日期:2013年7月5日星期五指导教师:秦明伟 方向设计学生日志

奇偶校验编码仿真 一、摘要(150-250字) 奇偶校验是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。 二、设计目的和意义 认识matlab软件,学习掌握matlab的基本操作方法,熟悉M文件和simulink的具体实现方法,了解数据奇偶校验的原理和在matlab中的基本仿真,通过对简单的通信实验设计,提高了动手能力和对matlab操作,巩固了课程知识。 三、设计原理 在数据传输前附加一位奇校验位,用来表示传输的数据中"1"的个数是奇数还是偶数,为奇数时,校验位置为"0",否则置为"1",用以保持数据的奇偶性不变。例如,需要传输"11001110",数据中含5个"1",所以其奇校验位为"0",同时把"110011100"传输给接收方,接收方收到数据后再一次计算奇偶性,"110011100"中仍然含有5个"1",所以接收方计算出的奇校验位还是"0",与发送方一致,表示在此次传输过程中未发生错误。奇偶校验就是接收方用来验证发送方在传输过程中所传数据是否由于某些原因造成破坏。 奇偶校验原理是基于异或的逻辑功能。奇偶校验的编码方法是在原信号码组后面添加以为监督码元,奇偶校验分为奇校验和偶校验,奇校验是原信息码元加上监督码元后,使整个组成的数码组中,1的个数为奇数个。偶校验的工作原理则正好与奇校验相反。 对于n位二进码a1a2a3a4……a n奇校验有如下表示: a1⊕a2⊕a3⊕a4……⊕a n⊕C=1 偶校验的表达式为: a1⊕a2⊕a3⊕a4……⊕a n⊕C =1 其中,C为监督码元,在本设计中n为8,可以推出C的表达式为: C =a1⊕a2⊕a3⊕a4……⊕a8 在发送端让其监督码和信息码一起发送,在信息接收端,计算校验因子的表达式为: 、 S=a1⊕a2⊕a3⊕a4……⊕a n⊕C

cmos模拟集成电路设计实验报告

北京邮电大学 实验报告 实验题目:cmos模拟集成电路实验 姓名:何明枢 班级:2013211207 班内序号:19 学号:2013211007 指导老师:韩可 日期:2016 年 1 月16 日星期六

目录 实验一:共源级放大器性能分析 (1) 一、实验目的 (1) 二、实验内容 (1) 三、实验结果 (1) 四、实验结果分析 (3) 实验二:差分放大器设计 (4) 一、实验目的 (4) 二、实验要求 (4) 三、实验原理 (4) 四、实验结果 (5) 五、思考题 (6) 实验三:电流源负载差分放大器设计 (7) 一、实验目的 (7) 二、实验内容 (7) 三、差分放大器的设计方法 (7) 四、实验原理 (7) 五、实验结果 (9) 六、实验分析 (10) 实验五:共源共栅电流镜设计 (11) 一、实验目的 (11) 二、实验题目及要求 (11) 三、实验内容 (11) 四、实验原理 (11) 五、实验结果 (14) 六、电路工作状态分析 (15) 实验六:两级运算放大器设计 (17) 一、实验目的 (17) 二、实验要求 (17) 三、实验内容 (17) 四、实验原理 (21) 五、实验结果 (23) 六、思考题 (24) 七、实验结果分析 (24) 实验总结与体会 (26) 一、实验中遇到的的问题 (26) 二、实验体会 (26) 三、对课程的一些建议 (27)

实验一:共源级放大器性能分析 一、实验目的 1、掌握synopsys软件启动和电路原理图(schematic)设计输入方法; 2、掌握使用synopsys电路仿真软件custom designer对原理图进行电路特性仿真; 3、输入共源级放大器电路并对其进行DC、AC分析,绘制曲线; 4、深入理解共源级放大器的工作原理以及mos管参数的改变对放大器性能的影响 二、实验内容 1、启动synopsys,建立库及Cellview文件。 2、输入共源级放大器电路图。 3、设置仿真环境。 4、仿真并查看仿真结果,绘制曲线。 三、实验结果 1、实验电路图

(完整)EDA试题及答案,推荐文档

2013年电子系统设计考试试题--考试时间21号56节--公共409 一、填空题 1. Verilog的基本设计单元是模块。它是由两部分组成,一部分描述接口;另一部分描述逻辑功能,即定义输入是如何影响输出的。 2. 用assign描述的语句我们一般称之为组合逻辑,并且它们是属于并行语句,即于语句的书写次序无关。而用always描述的语句我们一般称之为组合逻辑或时序逻辑,并且它们是属于串行语句,即于语句的书写有关。 3.在case语句中至少要有一条default语句. 4. 已知x=4’b1001,y=4’0110,则x的4位补码为4’b1111,而y的4位的补码为4’b0110 . 5. 两个进程之间是并行语句。而在Always中的语句则是顺序语句。 二、简答题 1. 怎样理解在进程语句中,阻塞语句没有延迟这句话? 答:这是因为在进程语句中,有阻塞语句和非阻塞语句这两种,非阻塞语句是有延迟的,而阻塞语句也是有延迟的,这是因为因果系统都有延迟,只是阻塞语句的延迟比非阻塞语句的延迟小于若干个数量级,因此可视为没有延迟。 2.在进程中什么情况下综合为时序电路?什么情况下综合为组合电路? 答:在进程中,只有当敏感信号是边沿触发(即上升沿或下降沿)时,此时综合为时序电路;而在进程中只有当敏感信号是电平沿触发时,此时综合为组合电路。 3.为什么在Verilog语言中,其综合只支持次数确定的循环,而不支持次数不确定的循环? 答:这是因为,在Verilog语言中,它是为电路设计而设计的一门语言,它与高级语言不同,若循环的次数不确定,则会带来不确定的延迟,而这在电路中是不允许存在的,故综合只能支持次数确定的循环,即对于一个具体的芯片,其延迟只是一个定值。 4.Verilog HDL语言进行电路设计方法有哪几种? 答:①自上而下的设计方法(Top-down);②自下而上的设计方法(Bottom-Up) ③综合设计的方法。 5.specparam语句和parameter语句在参数说明方面不同之处是什么? 答:1.specparam语句只能在延时的格式说明块(specify)中出现,而parameter语句则不能再延时说明块内出现。 2.由specparam语句进行定义的参数只能是延时参数,而由parameter语句定义的参数可以是任何数据类型的参数。 3.由specparam语句定义的延时参数只能在延时说明块内使用,而由parameter语句定义的参数则可以在模块内(该parameter语句之后)的任何位置说明。 三、选择题: 1、下列标示符哪些是合法的(B) A、$time B、_date C、8sum D、mux# 2、如果线网类型变量说明后未赋值,起缺省值是(D) A、x B、1 C、0 D、z 3、现网中的值被解释为无符号数。在连续赋值语句中,assign addr[3:0]=-3;addr被赋予的值是(A) A、4’b1101 B、4’b0011 C、4’bxx11 D、4’bzz11 4、reg[7:0] mema[255:0]正确的赋值是(A) A、mema[5]=3’ d0, B、8’ d0; C、1’ b1; D、mema[5][3:0]=4’ d1 5、在code模块中参数定义如下,请问top模块中d1模块delay1、delay2的值是( D) module code(x,y); module top; paramee delay1=1,delay2=1; …………….

奇偶校验

奇偶校验 在数据传输前在数据位后附加一位奇偶校验位,用来表示传输的数据中"1"的个数是奇数还是偶数,以此判断数据传输正确性的一种校验方法。 奇偶校验的产生: 为奇数时,校验位置为"0",否则置为"1",用以保持数据的奇偶性不变。例如,需要传输"11001110",数据中含5个"1",所以其奇校验位为"0",同时把"110011100"传输给接收方,接收方收到数据后再一次计算奇偶性,"110011100"中仍然含有5个"1",所以接收方计算出的奇校验位还是"0",与发送方一致,表示在此次传输过程中未发生错误。奇偶校验就是接收方用来验证发送方在传输过程中所传数据是否由于某些原因造成破坏。 具体方法如下: 奇校验: 就是让原有数据序列中(包括你要加上的一位)1的个数为奇数 1000110(0)你必须添0这样原来有3个1已经是奇数了所以你添上0之后1的个数还是奇数个。 偶校验: 就是让原有数据序列中(包括你要加上的一位)1的个数为偶数 1000110(1)你就必须加1了这样原来有3个1要想1的个数为偶数就只能添1了。 按校验的数据量和生成校验码的方式分为三类: 1.垂直奇偶校验码:以一个字符作为校验单位纵向生成校验码位;

例如使用ASCII编码的一个字符由8bit组成,其中低7bit为信息位,最高1bit作为校验位,假设某一字符的标准ASCII编码为0011000,根据奇偶校验规则,如果采用奇校验,则校验位应为1(这样字符中1的个数才能为奇数),即00110001;如果采用偶校验,校验位应为0,即00110000垂直奇偶校验码的特点:校验处理过程简单,但如果字符中发生偶数位的错误就检测不出来,也检测不到错误发生在哪一位。 2.水平奇偶校验码:以多个字符作为校验单位横向生成校验码位; 生成方法:以若干个字符作为一个校验单位。每个字符各自生成一个垂直奇偶校验码,再为每个字符的相同位及其垂直奇偶校验码生成水平奇偶校验码,这些校验码形成一个校验字符,附加在被校验字符的后面一并传输到接收方,该校验字符即称为方阵校验码。 校验特点:一次能校验更多的数据,效率较高,系统实现也比较简单,检测可靠性有所提高,但仍然不能检测出所有的错误。 3.水平垂直冗余校验码(方阵校验码):以多个字符作为校验单位水平垂直两个方向共同生成校验字符。

奇偶校验_校验和实验

实验5-1纠错与检错 1.实验内容 读程序,在所有红色的“#”后面添加解释,说明程序的作用 2.实验题目 (1)奇偶校验码 在原始模式上增加一个附加比特位,即奇偶校验位,使最后整个模式中1的个数为奇数(奇校验)或偶数(偶校验)。 本程序用到列表、字符串合并、取模等概念。 code=input("Please input a 7-bit-binary code:") a=0 # for 循环作用是什么 for i in range(0,6,1): if code[i]=='1': a=a+1 print("After odd parity checking the code is:") if a%2==0: print(code+'1') # 这句做了什么 else: print(code) # 这句做了什么 print("After even parity checking the code is:") # 下面 if .. else …作用是什么 if a%2==0: print(code) else: print(code+'1') (2) 垂直水平奇偶校验 如下图所示,14个字符纵向排列形成一个数据块,每个字符占据一列,低位比特在上,高位比特在下,用b8(第8位)作为垂直奇偶校验位,各字符的同一比特位形成一行,每一行的最右边一位作为水平奇偶校验位,这里在垂直和水平方向均采用偶校验。

# 下面的函数做了什么 def oddeven(l): a=0 for i in range(0,len(l),1): if l[i]=='1': a=a+1 if a%2==0: return '0' else: return '1' block=[['0']*15,['0']*15,['0']*15,['0']*15,['0']*15,['0']*15,['0']*15,[' 0']*15] for i in range(0,14,1): vcode=input("Please input a 7-bit-binary code:") for j in range(0,7,1): block[j][i]=vcode[j] block[7][i]=oddeven(vcode) # 这句做了什么 hcode=['0']*14 for j in range(0,8,1): for i in range(0,14,1): hcode[i]=block[j][i] block[j][14]=oddeven(hcode) # 这句做了什么 print(block) (3)循环冗余校验 任何一个二进制位串都可以用一个多项式来表示,多项式的系数只有0和1,n 位长度的码C 可以用下述n -1次多项式表示: ()n 1n 210C x C x C x C x C --=++++L n-1n-21 例如位串1010001可以表示为x 6+x 4 +1。 数据后面附加上冗余码的操作可以用多项式的算术运算来表示。例如,一个k 位的信息码后面附加上r 位的冗余码,组成长度为n=k+r 的码,它对应一个(n -1)次的多项式C(x),信息码对应一个(k -1)次的多项式K(x),冗余码对应一个(r -1)次的多项式R(x),C(x)与K(x)和R(x)之间的关系满足: ()()()r C x x K x R x =+ 由信息码生成冗余码的过程,即由已知的K(x)求R(x)的过程,也是用多项式的算术运 算来实现。其方法是:通过用一个特定的r 次多项式G(x)去除x r K(x),即: () () r x K x G x 得到的r 位余数作为冗余码R(x)。其中G(x)称为生成多项式(generator polynomial ),是由通信的双方预先约定的。除法中使用模2减法(无借位减,相当于作异或运算)。要进行的多项式除法,只要用其相对应的系数进行除法运算即可。 本例中,10位二进制信息位串对应K(x)=x 9+x 8+ x 6+x 4+ x 3 + x+1;CRC_4对应的G(x)=

EDA考试题目+答案

简答: 1.VHDL中变量与信号的主要区别 一、变量是一个局部量,只能在进程和子程序,无延时,立即发生,主要作用是在进程中作为临时的数据存储单元。 从VHDL语句功能和行为仿真来看,信号与变量的差异主要表现在接受信息的方式和信息保持与传递的区域大小上。 (1)如:信号可以设置传输延迟量,而变量则不能; (2)如:信号可作为模块间的信息载体,如在结构体中个进程间传递信息;变量只能作为局部的信息载体,如只能在所定义的进程中有效。 (3) 变量的设置有时只是一种过渡,最后的信息传输和界面间的通信都是靠信号来完成综合后的信号将对应更多的硬件结构。 2.ASIC、FPGA、EDA、ISP的含义 ASIC:专用集成电路FPGA:可编程逻辑器件EDA:电子设计自动化ISP:因特网服务提供商 3.常用的库的名称(IEEE STD WORK VITAL) 5.进程语句的特点 (1)进程与进程,或其它并行语句之间的并行性,体现硬件电路并行运行特征。 (2)进程内部的顺序语句具有顺序与并行双重性。顺序行为体现硬件的逻辑功能,并行行为体现硬件特征。 进程内部使用顺序语句,对一个系统进行算法、行为和逻辑功能进行描述,可以具有高抽象性的特点,可以与具体的硬件没有关联。 这种顺序仅是指语句执行上的顺序(针对于HDL的行为仿真),并不意味着PROCESS语句在综合后所对应的硬件逻辑行为也同样具有顺序性。

VHDL程序无法进行诸如软件语言那样的“单步”调试,因为整个程序是一个整体,不能割裂每一句,只能通过仿真波形来了解程序的问题。 (3)进程有启动与挂起两种状态。 (4)进程与进程,或其它并行语句之间通过信号交流。 (5)时序电路必须由进程中的顺序语句描述,而此顺序语句必须由不完整的条件语句构成。推荐在一个进程中只描述针对同一时钟的同步时序逻辑,而异步时序逻辑或多时钟逻辑必须由多个进程来表达。 6.实体定义时端口方向OUT与BUFFER有何不同? OUT:输出端口。定义的通道为单向输出(写)模式,即通过此端口只能将实体内的数据流向外部。 BUFFER:缓冲端口。其功能与INOUT类似,区别在于当需要输入数据时,只允许内部回读输出的信号,即允许反馈。 如:在计数器的设计中,将计数器输出的计数信号回读,作为下一次计数的初值。 与OUT模式相比,BUFFER回读信号不是由外部输入的,而是由内部产生、向外输出信号。 即OUT结构体内部不能再使用,BUFFER结构体内部可再使用。

数字集成电路设计实验报告

哈尔滨理工大学数字集成电路设计实验报告 学院:应用科学学院 专业班级:电科12 - 1班 学号:32 姓名:周龙 指导教师:刘倩 2015年5月20日

实验一、反相器版图设计 1.实验目的 1)、熟悉mos晶体管版图结构及绘制步骤; 2)、熟悉反相器版图结构及版图仿真; 2. 实验内容 1)绘制PMOS布局图; 2)绘制NMOS布局图; 3)绘制反相器布局图并仿真; 3. 实验步骤 1、绘制PMOS布局图: (1) 绘制N Well图层;(2) 绘制Active图层; (3) 绘制P Select图层; (4) 绘制Poly图层; (5) 绘制Active Contact图层;(6) 绘制Metal1图层; (7) 设计规则检查;(8) 检查错误; (9) 修改错误; (10)截面观察; 2、绘制NMOS布局图: (1) 新增NMOS组件;(2) 编辑NMOS组件;(3) 设计导览; 3、绘制反相器布局图: (1) 取代设定;(2) 编辑组件;(3) 坐标设定;(4) 复制组件;(5) 引用nmos组件;(6) 引用pmos组件;(7) 设计规则检查;(8) 新增PMOS基板节点组件;(9) 编辑PMOS基板节点组件;(10) 新增NMOS基板接触点; (11) 编辑NMOS基板节点组件;(12) 引用Basecontactp组件;(13) 引用Basecontactn 组件;(14) 连接闸极Poly;(15) 连接汲极;(16) 绘制电源线;(17) 标出Vdd 与GND节点;(18) 连接电源与接触点;(19) 加入输入端口;(20) 加入输出端口;(21) 更改组件名称;(22) 将布局图转化成T-Spice文件;(23) T-Spice 模拟; 4. 实验结果 nmos版图

巧用单片机的奇偶校验位

巧用8051单片机的奇偶校验位 () 南京东南大学电子工程系 210096 孙洪军 () 南京理工大学化工学院 210094孙秀云周学铁 摘根连线即可达到 3要: 一种微机间的串行通信方法, 只需用 R XD、T XD 和GN D 115200bp s 的传输速率。 中断关键词: 串行通信语言 8250 IN S C 送出去。IN S 8250接收由 R XD 来的数据后, 经过串?在工程设计中, 经常会遇到近距离的微机间数据交换问题, 通常的解决方法是利用微机的异步串行通并信适配器, 通过把2台微机的串行通信口相连来实现转换后, 放在中供读取。RBR C PU 表1 IN S 8250中可访问的寄存器据交换。在程序的设计上往往利用或数 B IO S DO S 的功 1 2 能调用来实现对适配器的初始化、状态检测、数COM COM 方向寄存器名称口地址口地址据的发 3828输出发送器保持寄存器() F H F H T HR 送和接收等。这种方法实现的串行通信程序, 设计起来 3828输入接收器缓冲寄存器() F H F H RBR 相对简单, 但是在连线上要复杂一些, 除了通信线外, 3828输出除数寄存器( 低位) () F H F H D R 还需要握手信号线, 通信速率最高只可达到9600。 bp s3929输出除数寄存器( 高位) () F H F H D R 而在实践中, 人们往往更希望采用3线通信形式, 只采 3929输出中断允许寄存器( ) F H F H IER 用、、根线, 通信速率也希望能达到更 3R XDT XDGN D 32输入中断识别寄存器( ) FA H FA H IIR 高水平。通过对微机的异步串行通信适配器的研究发 32输出线路控制寄存器() 现, 完全可以避开对或的功能调用, 通过 FBH FBH L CR B IO S DO S 调制解调器控制寄存器直接访问其寄存器来实现对适配器的初始化、状态检 3FCH 2FCH 输出 ()M CR 测、数据的发送和接收等功能, 可以达到115200的 bp s 32输入线路状态寄存器()FD H FD H L SR 传输速率, 再通过对中断控制器8259的编程, 采用中 A 调制解调器状态寄存器 3F EH 2F EH 输入断方式接收数据, 可以可靠地实现高速3线串行通信。 ()M SR 1 异步串行通信适配器的工作原理 微机上通常有2个异步串行通信适配器, 分别为D R 中存放的数据用来决定数据传输时的波特主适配器和辅适配器, 适配器和外部的通信连接通过率, 其计算公

奇偶码

校验码辅导讲座 二进制数据经过传送、存取等环节,会发生误码(1变成0或0变成1),这就有如何发现及纠正误码的问题。所有解决此类问题的方法就是在原始数据(数码位)基础上增加几位校验(冗余)位。 一、码距 一个编码系统中任意两个合法编码(码字)之间不同的二进数位(bit )数叫这两个码字的码距,而整个编码系统中任意两个码字的的最小距离就是该编码系统的码距。 如图1所示的一个编码系统,用三个bit 来表示八个不同信息中。在这个系统中,两个码字之间不同的bit 数从1到3不等,但最小值为1,故这个系统的码距为1。如果任何码字中一位或多位被颠倒了,结果这个码字就不能与其它有效信息区分开。例如,如果传送信息001,而被误收为011,因011仍是表中的合法码字,接收机仍将认为011是正确的信息。 然而,如果用四个二进数字来编8个码字,那么在码字间的最小距离可以增加到2,如图2的表中所示。 图 1 图 2 注意,图8-2的8个码字相互间最少有两bit 的差异。因此,如果任何信息的一个数位被颠倒,就成为一个不用的码字,接收机能检查出来。例如信息是1001,误收为1011,接收机知道发生了一个差错,因为1011不是一个码字(表中没有)。然而,差错不能被纠正。假定只有一个数位是错的,正确码字可以是1001,1111,0011或1010。接收者不能确定原来到底是这4个码字中的那一个。也可看到, 在这个系统中,偶数个(2或4)差错也无法发现。 为了使一个系统能检查和纠正一个差错,码间最小距离必须至少是“3”。最小距离为3时,或能纠正一个错,或能检二个错,但不能同时纠一个错和检二个错。编码信息纠错和检错能力的进一步提高需要进一步增加码字间的最小距离。 图8-3的表概括了最小距离为1至7的码的纠错和检错能力。 图3 码距越大,纠错能力越强,但数据冗余也越大,即编码效率低了。所以,选择码距要取决于特定系统的参数。数字系统的设计者必须考虑信息发生差错的概率和该系统能容许的最小差错率等因素。要有专门的研究来解决这些问题。 二、奇偶校验

CMOS数字集成电路设计_八位加法器实验报告

CMOS数字集成电路设计课程设计报告 学院:****** 专业:****** 班级:****** 姓名:Wang Ke qin 指导老师:****** 学号:****** 日期:2012-5-30

目录 一、设计要求 (1) 二、设计思路 (1) 三、电路设计与验证 (2) (一)1位全加器的电路设计与验证 (2) 1)原理图设计 (2) 2)生成符号图 (2) 3)建立测试激励源 (2) 4)测试电路 (3) 5)波形仿真 (4) (二)4位全加器的电路设计与验证 (4) 1)原理图设计 (4) 2)生成符号图 (5) 3)建立测试激励源 (5) 4)测试电路 (6) 5)波形仿真 (6) (三)8位全加器的电路设计与验证 (7) 1)原理图设计 (7) 2)生成符号图 (7) 3)测试激励源 (8) 4)测试电路 (8) 5)波形仿真 (9) 6)电路参数 (11) 四、版图设计与验证 (13) (一)1位全加器的版图设计与验证 (13) 1)1位全加器的版图设计 (13) 2)1位全加器的DRC规则验证 (14) 3)1位全加器的LVS验证 (14) 4)错误及解决办法 (14) (二)4位全加器的版图设计与验证 (15) 1)4位全加器的版图设计 (15) 2)4位全加器的DRC规则验证 (16) 3)4位全加器的LVS验证 (16) 4)错误及解决办法 (16) (三)8位全加器的版图设计与验证 (17) 1)8位全加器的版图设计 (17) 2)8位全加器的DRC规则验证 (17) 3)8位全加器的LVS验证 (18) 4)错误及解决办法 (18) 五、设计总结 (18)

福州大学集成电路版图设计实验报告

福州大学物信学院 《集成电路版图设计》 实验报告 姓名:席高照 学号:111000833 系别:物理与信息工程 专业:微电子学 年级:2010 指导老师:江浩

一、实验目的 1.掌握版图设计的基本理论。 2.掌握版图设计的常用技巧。 3.掌握定制集成电路的设计方法和流程。 4.熟悉Cadence Virtuoso Layout Edit软件的应用 5.学会用Cadence软件设计版图、版图的验证以及后仿真 6.熟悉Cadence软件和版图设计流程,减少版图设计过程中出现的错误。 二、实验要求 1.根据所提供的反相器电路和CMOS放大器的电路依据版图设计的规则绘制电路的版图,同时注意CMOS查分放大器电路的对称性以及电流密度(通过该电路的电流可能会达到5mA) 2.所设计的版图要通过DRC、LVS检测 三、有关于版图设计的基础知识 首先,设计版图的基础便是电路的基本原理,以及电路的工作特性,硅加工工艺的基础、以及通用版图的设计流程,之后要根据不同的工艺对应不同的设计规则,一般来说通用的版图设计流程为①制定版图规划记住要制定可能会被遗忘的特殊要求清单②设计实现考虑特殊要求及如何布线创建组元并对其进行布局③版图验证执行基于计算机的检查和目视检查,进行校正工作④最终步骤工程核查以及版图核查版图参数提取与后仿真 完成这些之后需要特别注意的是寄生参数噪声以及布局等的影响,具体是电路而定,在下面的实验步骤中会体现到这一点。 四、实验步骤 I.反相器部分: 反相器原理图:

反相器的基本原理:CMOS反相器由PMOS和NMOS构成,当输入高电平时,NMOS导通,输出低电平,当输入低电平时,PMOS导通,输出高电平。 注意事项: (1)画成插齿形状,增大了宽长比,可以提高电路速度 (2)尽可能使版图面积最小。面积越小,速度越高,功耗越小。 (3)尽可能减少寄生电容和寄生电阻。尽可能增加接触孔的数目可以减小接触电阻。(4)尽可能减少串扰,电荷分享。做好信号隔离。 反相器的版图: 原理图电路设计: 整体版图:

EDA期末考试试卷

班级学号姓名 密封线内不得答题 EDA期末考试试题及答案 一、单项选择题(30分,每题2分) 1. A. B C D.通常,EDAL 配器则需由 2.VHDL A.器件外部特性 C 3.下列标识符中, B 是不合法的标识符。 A.State0 B. 4.以下工具中属于 A.ModelSim C.MATLAB 5. A.立即完成 C.在进程的最后完成 6.以下关于CASE A.CASE B. 句>” C.CASE D.WHEN 围 7. A.STD_LOGIC_ARITH B.STD_LOGIC_1164 C. D. 8.基于EDA软件的FPGA / CPLD设计流程为:原理图/HDL文本输入→A → 综合→适配→时序仿真→编程下载→硬件测试。 A.功能仿真B.逻辑综合C.配置D.引脚锁定 9.不完整的IF语句,其综合结果可实现 D A.三态控制电路B.条件相或的逻辑电路 C.双向控制电路D.时序逻辑电路 10.下列语句中,属于并行语句的是A D.FOR语句 示转化成另一种表示的过程;在下面对综合的描述中, C 是错误的。 FPGA / CPLD的基本 系列器件 系列器件 语言中,下列对时钟边沿检测描述中,错误的是 D

班级 学号 姓名 密 封 线 内 不 得 答 题 二、EDA 名词解释,写出下列缩写的中文含义(10分,每题2分) 1.FPGA :现场可编程门阵列

班级学号姓名 密封线内不得答题1.试用VHDL描述一个外部特性如图所示的数据选择器,S为控制端口。(10 分) Library IEEE; Use IEEE.std_logic_1164.all; Entity sjxz IS Port(A,B,S:in std_logic; Q:out std_logic); END entity sjxz; Architecture bhv of sjxz IS Process(S) Begin IF S=’0’ Then Q<=A; ELSE Q<=B; END IF; END PROCESS’ END bhv; 2.下图为某一状态机对应的状态图,试用VHDL语言描述这一状态机。(18分) 1 Library IEEE; Use IEEE.std_logic_1164.all; Use IEEE.std_logic_unsigned.all; Entity FSM1 IS PORT(clk,rst:in std_logic; In1:in std_logic; Out1:out std_logic_vector(3 downto 0)); END entity FSM1; Architecture bhv of FSM1 IS TYPE FSM_ST IS(S0,S1,S2,S3); Singnal C_ST:FSM_ST; Begin Process(clk,rst) Begin IF rst=’1’ then C_ST<=S0; ELSIF clk’event AND clk=’1’then CASE C_ST IS When S0=>IF In1=’1’ then C_ST<=S1; ELSE C_ST<=S0; END IF; Out1<=”0000”; When S1=>IF In1=’0’ then C_ST<=S2; ELSE C_ST<=S1; END IF; Out1<=”1001”; When S2=>IF In1=’1’ then C_ST<=S3; ELSE C_ST<=S2; END IF; Out1<=”1100” ; When S3=>IF In1=’0’ then C_ST<=S0; ELSE C_ST<=S3; END IF; Out1<=”1111”; END CASE; END IF; END process; END bhv;

相关主题