计算机组成原理课程设计校验码生成电路的设计_第1页
计算机组成原理课程设计校验码生成电路的设计_第2页
计算机组成原理课程设计校验码生成电路的设计_第3页
计算机组成原理课程设计校验码生成电路的设计_第4页
计算机组成原理课程设计校验码生成电路的设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编 号:学 号:201140410119课 程 设 计教 学 院计算机学院课程名称计算机组成原理课程设计题 目校验码生成电路的设计专 业计算机科学与技术班 级计科一班姓 名陈建辉同组人员周海涛 石义沣 明廷柱指导教师杨 斐2013年1月11日目 录一 概述21.课程设计的目的22.课程设计的要求2二 总体方案设计31.设计原理32.整体设计思路43. EDA技术及QUARTUS II软件的简介44. 主要特点75. 具备的功能76. 分工情况87. 设计环境8三 详细设计91. 12位的寄存器设计92. 奇偶校验电路的设计103. CRC码生成电路的设计104. 17位寄存器设计135. 整体

2、电路13四.程序的调试与运行结果说明151. 建立工作库文件夹和编辑设计文件152. 时序仿真163. 设置开始时间和结束时间及时间段174. 奇偶校验码波形图175. CRC码校验仿真波形图186. 整合电路校验码的波形图18五 课程设计总结19参考文献20一 概述1.课程设计的目的1. 理解和掌握该课程中的有关基本概念,程序设计思想和方法。2培养综合运用所学知识独立完成课题的能力。3培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。4掌握从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意

3、识和创新能力。2.课程设计的要求 1. 能够熟练掌握计算机中校验码的工作原理及其多种实现方案; 2. 掌握硬件描述语言VHDL及原理图设计方法; 3. 熟练掌握Quartus II软件平台; 4. 各小组按模块分工,每人独立完成自己负责的模块; 5. 合作完成最终的硬件下载及调试; 6. 独立撰写符合要求的课程设计报告。二 总体方案设计1.设计原理 二进制信息位流沿一条线逐位在部件之间或计算机之间传送称为串行传送。奇偶校验码是一种通过增加冗余位使得码字中"1"的个数恒为奇数或偶数的编码方法,它是一种检错码。在实际使用时又可分为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验等几

4、种。它是由k位的信息码加上一位偶检验码(或奇校验码组成)。奇偶校验码常用于存储器读、写检查或ASCII码传送过程中的检查。在实际应用中,多采用奇校验,因为奇校验中不存在全“0”代码,在某些场合下更便于判别。CRC码一般是指k位信息码之后拼接r位校验码。应用CRC码的关键是如何从k位信息位简便地得到r位效验位,以及如何从k+r位信息码判断是否出错。奇偶校验码的生成:奇偶校验码的实现方法是在每个被传送码的左边或右边加上1位奇偶校验位“0”或“1”,若采用奇校验位,只需把每个编码中1的个数凑成奇数;若采用偶校验位,只要把每个编码中1的个数凑成偶数。CRC码生成:多项式M(x)·x3除以生成

5、多项式G(x)所得的r位余数为效验位(为了得到R位余数,G(x)必须是r+1位)。然后将余数拼接在信息组左移r位空出的r位上,就构成了这个有效信息的CRC码。(因为k=4,所以k-1=3位)CRC码效验: 将收到的循环效验码用约定的生成多项式G(x)去除,如果码字无误则余数应为0,如果某一位出错,则余数不为0,不同位数出错余数不同。更换不同的待测码字可以证明:余数与出错位的对应关系是不变的,只与码制和生成多项式有关,对于其他码制或选用其他生成多项式,出错模式将发生变化。 如果循环码有一位出错,用G(x)作模2除将得到一个不为0的余数。可通过异或门将它纠正后在下一次移位时送回A16继续移满一个循

6、环,就得到一个纠正后的码字。2.整体设计思路1.利用QUARTUS软件设计校验码生成电路,能实现奇偶校验码和循环冗余CRC码的设计。2.用原理图设计法设计奇偶校验码生成电路。3.用VHDL设计法设计循环冗余CRC码生成电路。4.输入12位二进制数据存放在A寄存器中,加码后的数据以二进制显示在发光二级管上。5.总电路的设计如下:M2M1CRC码生成电路奇偶校验码生成电路IN(110)LDXX 图 2-1 总电路示意图3. EDA技术及QUARTUS II软件的简介EDA是Electronic Design Automation(电子设计自动化)的缩写 。由于它是一门刚刚发展起来的新技术,涉及面广

7、,内容丰富,理解各异,所以目前尚无一个确切的定义。但从EDA技术的几个主要方面的内容来看,可以理解为:EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真。完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片。EDA技术是伴随着计算机、集成电路、电子系统的设计发展起来的,至今已有30多年的历程。大致可以

8、分为三个发展阶段。20世纪70年代的CAD(计算机辅助设计)阶段:这一阶段的主要特征是利用计算机辅助进行电路原理图编辑,PCB布同布线,使得设计师从传统高度重复繁杂的绘图劳动中解脱出来。20世纪80年代的QtE(计算机辅助工程设计)阶段:这一阶段的主要特征是以逻辑摸拟、定时分析、故障仿真、自动布局布线为核心,重点解决电路设计的功能检测等问题,使设计而能在产品制作之前预知产品的功能与性能。20吐纪如年代是EDA(电子设计自动化)阶段:这一阶段的主要特征是以高级描述语言,系统级仿真和综合技术为特点,采用“自顶向下”的设计理念,将设计前期的许多高层次设计由EDA工具来完成。EDA是电子技术设计自动化

9、,也就是能够帮助人们设计电子电路或系统的软件工具。该工具可以在电子产品的各个设计阶段发挥作用,使设计更复杂的电路和系统成为可能。在原理图设计阶段,可以使用EDA中的仿真工具论证设计的正确性;在芯片设计阶段,可以使用EDA中的芯片设计工具设计制作芯片的版图:在电路板设计阶段,可以使用EDA中电路板设计工具设计多层电路板。特别是支持硬件描述语言的EDA工具的出现,使复杂数字系统设计自动化成为可能,只要用硬件描述语言将数字系统的行为描述正确,就可以进行该数字系统的芯片设计与制造。有专家认为,21世纪将是四A技术的高速发展期,EDA技术将是对21世纪产生重大影响的十大技术之一。EDA技术的基本特征:E

10、DA代表了当今电子设计技术的最新发展方向.将EDA技术与传统电子设计方法进行比较可以看出,传统的数字系统设计只能在电路板上进行设计,是一种搭积木式的方式,使复杂电路的设计、调试十分困难;如果某一过程存在错误查找和修改十分不便;对于集成电路设计而言,设计实现过程与具体生产工艺直接相关,因此可移植性差;只有在设计出样机或生产出芯片后才能进行实泅,因而开发产品的周期长。而电子EDA技术则有很大不同,采用可编程器件,通过设计芯片来实现系统功能。采用硬件描述语言作为设计输入和库(LibraIy)的引入,由设计者定义器件的内部逻辑和管脚,将原来由电路板设计完成的大部分工作故在芯片的设计中进行。由于管脚定义

11、的灵活性,大大减轻了电路图设计和电路板设计的工作量和难度,有效增强了设计的灵活性,提高了工作效率。并且可减少芯片的数量,缩小系统体积,降低能源消耗,提高了系统的性能和可靠性。能全方位地利用计算机自动设计、仿真和调试。硬件描述语言:硬件描述语言(HDL)是一种用于进行电子系统硬件设计的计算机高级语言,它采用软件的设计方法来描述电子系统的逻辑功能、电路结构和连接形式。 硬件描述语言可以在三个层次上进行电路描述,其层次由高到低分为行为级、R,几级和门电路级。常用硬件描述语言有WDL、Velllq和AHDL语言。WDL语言是一种高级描述语言,适用于行为级和R,几级的描述;Vedlq语言和ABEL语言属

12、于一种较低级的描述语言,适用于R,几级和门电路级的描述。现在WDL和Velllq作为工业标准硬件描述语言,已得到众多EDA公司的支持,在电子工程领域,它们已成为事实上的通用硬件描述语言,承担几乎全部的数字系统的设计任务。应用Vf进行电子系统设计有以下优点:(1)与其他硬件描述语言相比,WDL具有更强的行为描述能力,强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2)VHDL具有丰富的仿真语句和库函数,使得在任何大系统的设计早期就能检查设计系统的功能可行性,并可以随时对系统进行仿真。(3)Vf语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解

13、和对已有设计的再利用功能。(4)用Vf完成的设计,可以利用EDA工具进行逻辑综合和优化,并可根据不同的目标芯片自动把Vf描述设计转变成门级网表,这种设计方式极大地减少了电路设计的时间及可能发生的错误,从而降低了开发成本。(5)Vf0L对设计的描述具有相对独立性,可以在设计者不僵硬件结构的情况下,也不必管最终设计的目标器件是什么,而进行独立的设计。(6)由于VI具有类属描述语句和子程序调用等功能,所以对于已完成的设计,可以在不改变源程序的情况厂,只需改变类属参量或函数,就能很容易地改变及计的规模和结构。EDA技术的应用:电子EDA技术发展迅猛,逐渐在教学、科研、产品设计与制造等各方面都发挥着巨大

14、的作用。在教学方面:几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。主要是让学生了解EDA的基本原理和基本概念、鳞握用佃L描述系统逻辑的方法、使用扔A工具进行电子电路课程的模拟仿真实验并在作毕业设计时从事简单电子系统的设计,为今后工作打下基础。具有代表性的是全国每两年举办一次大学生电子设计竞赛活动。在科研方面:主要利用电路仿真工具(EwB或PSPICE、VLOL等)进行电路设计与仿真;利用虚拟仪器进行产品调试;将O)LI)FPGA器件的开发应用到仪器设备中。例如在CDMA无线通信系统中,所有移动手机和无线基站都工作在相同的频谱,为区别不同的呼叫,每个手机有一个唯一的码序列,CDMA

15、基站必须能判别这些不同观点的码序列才能分辨出不同的传呼进程;这一判别是通过匹配滤波器的输出显示在输人数据流中探调到特定的码序列;FPGA能提供良好的滤波器设计,而且能完成DSP高级数据处理功能,因而FPGA在现代通信领域方面获得广泛应用。在产品设计与制造方面:从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等,EDA技术不单是应用于前期的计算机模拟仿真、产品调试,而且也在P哪的制作、电子设备的研制与生产、电路板的焊接、朋比的制作过程等有重要作用。可以说电子EDA技术已经成为电子工业领域不可缺少的技术支持。Quartus是Altera公司推出的新一代开发软件,适合于大规模逻辑电路

16、设计。Quartus软件的前一代FPGA/CPLD集成开发环是MAX+PLUS。 Quartus支持多种编辑输入法,包括图形编辑输入法,VHDL、Verilog HDL和AHDL的文本编辑输入法,图形编辑输入法,以及内存编辑输入法。Quartus与MATLAB和DSP Builder结合可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具,与SOPC Builder结合,可实现SOPC系统开发。 4. 主要特点 奇偶检验电路只有找错的功能,而没有纠错的功能根据代码中全部位数相加的“和”来进行奇校验或偶校验。“和”操作的特点:偶数个1,它的和总是0;奇数个1,它的和总是1。

17、 奇偶校验编码方式和检验电路只能测出一位出错或者奇数个位错误,而不能检测偶数个位出错,也无法对出错定位,无法自动校正错误能力。但由于电路简单,仍被广泛用于误码率不高的信息传输和存储器存储检错的场合。循环冗余校验码的特点:可检查出所有奇数位数;可检查出所有双比特的错;可检查出所有小于、等于检验位长度的突发错。5. 具备的功能 循环冗余码CRC在发送端编码和接收端校验时。都可以利用事先约定的生成多项式G(X)来得到K位要发送的信息位可对应于一个(k-1)次多项式K(X),r位冗余位则对应于一个(r-1)次多项式R(X)由r位冗余位组成的n=k+r位码字则对应于一个(n-1)次多项式T(X)=Xr*

18、K(X)+R(X)。 循环冗余校验码可检查出所有奇数位数;可检查出所有双比特的错;可检查出所有小于、等于检验位长度的突发错。奇偶校验编码方式和检验电路只能测出一位出错或者奇数个位错误,而不能检测偶数个位出错,也无法对出错定位,无法自动校正错误能力。6. 分工情况 我们小组由四个人,每个人都分配了不同的任务。其中,我的任务就是把小组中其他几个人做好的电路模块整合成完整的电路图,然后正对总的电路图做出仿真波形,检验电路图是否正确。7. 设计环境1. 硬件环境:微机; 2. EDA环境: Quartus设计软件。三 详细设计1. 12位的寄存器设计 我们要设计12位信息码的校验码生成电路,首先我们要

19、设计12位的寄存器来存放这12位信息码。设计步骤: 首先创建一个文件夹,然后在Quartus软件上新建一个工程并存放在所创建那个文件夹中,再在刚所新建的工程中新建一个VHDL文件,然后写上生成12位寄存器的VHDL代码,再对生成的12位寄存器进行打包,即可生成12位的寄存器芯片。12位寄存器的VHDL代码:library ieee;use ieee.std_logic_1164.all;entity jicunqi_12 is port(datain: in std_logic_vector( 11 downto 0); load : in std_logic; q11,q10,q9,q8,q

20、7,q6,q5,q4,q3,q2,q1,q0: out std_logic; q: out std_logic_vector( 11 downto 0) ); end;architecture one of jicunqi_12 is beginprocess(datain,load)beginif load='1' then q<=datain; q0<=datain(0); q1<=datain(1); q2<=datain(2); q3<=datain(3); q4<=datain(4); q5<=datain(5); q6<

21、;=datain(6); q7<=datain(7); q8<=datain(8); q9<=datain(9); q10<=datain(10); q11<=datain(11); end if;end process;end one;2. 奇偶校验电路的设计 对于奇偶校验电路的设计,我们可以直接根据其校验码的生成原理在Quartus软件上设计出其电路图。奇偶校验电路是由10个异或门组成。设计步骤: 首先创建一个文件夹,然后在Quartus软件上新建一个工程并存放在所创建那个文件夹中,再在刚所新建的工程中新建一个Block Digram File,然后根据其原理

22、画出生成奇偶校验码的电路图,再对生成的奇偶校验码生成电路进行打包,即可生成12位信息码的奇偶校验电路芯片。 奇偶校验码生成电路图: 图3-1 奇偶校验电路3. CRC码生成电路的设计CRC码生成电路所有模块中最重要的一部分。我么事通过编写VHDL代码生成器电路图的。设计步骤: 首先创建一个文件夹,然后在Quartus软件上新建一个工程并存放在所创建那个文件夹中,再在刚所新建的工程中新建一个VHDL文件,然后写上CRC码生成电路的VHDL代码,再对生成的CRC码生成电路进行打包,即可生成CRC码生成电路的芯片。CRC码生成电路的VHDL代码:LIBRARY ieee;USE ieee.std_l

23、ogic_1164.ALL;USE ieee.std_logic_unsigned.ALL;USE ieee.std_logic_arith.ALL;ENTITY crcm IS PORT (clk, hrecv,datald : IN std_logic; sdata : IN std_logic_vector(11 DOWNTO 0); datacrco : OUT std_logic_vector(16 DOWNTO 0); datacrci : IN std_logic_vector(16 DOWNTO 0); rdata : OUT std_logic_vector(11 DOWNT

24、O 0); datafini : OUT std_logic; ERROR0, hsend : OUT std_logic);END crcm;ARCHITECTURE comm OF crcm IS CONSTANT multi_coef : std_logic_vector(5 DOWNTO 0) := "110101" - 多项式系数, MSB一定为'1' SIGNAL cnt,rcnt : std_logic_vector(4 DOWNTO 0); SIGNAL dtemp,sdatam,rdtemp : std_logic_vector(11 DO

25、WNTO 0); SIGNAL rdatacrc: std_logic_vector(16 DOWNTO 0); SIGNAL st,rt : std_logic;BEGINPROCESS(clk) VARIABLE crcvar : std_logic_vector(5 DOWNTO 0);BEGIN IF(clk'event AND clk = '1') THEN IF(st = '0' AND datald = '1') THEN dtemp <= sdata; sdatam <= sdata; cnt <= (O

26、THERS => '0'); hsend <= '0' st <= '1' ELSIF(st = '1' AND cnt < 7) THEN cnt <= cnt + 1; IF(dtemp(11) = '1') THEN crcvar := dtemp(11 DOWNTO 6) XOR multi_coef; dtemp <= crcvar(4 DOWNTO 0) & dtemp(5 DOWNTO 0) & '0' ELSE dtemp <

27、= dtemp(10 DOWNTO 0) & '0' END IF; ELSIF(st='1' AND cnt=7) THEN datacrco<=sdatam & dtemp(11 DOWNTO 7); hsend <= '1' cnt <= cnt + 1; ELSIF(st='1' AND cnt=8) THEN hsend<= '0' st<='0' END IF; END IF;END PROCESS;PROCESS(hrecv,clk) VA

28、RIABLE rcrcvar : std_logic_vector(5 DOWNTO 0);BEGIN IF(clk'event AND clk = '1') THEN IF(rt = '0' AND hrecv = '1') THEN rdtemp <= datacrci(16 DOWNTO 5); rdatacrc <= datacrci; rcnt <= (OTHERS => '0'); ERROR0 <= '0' rt <= '1' ELSIF(r

29、t= '1' AND rcnt < 7) THEN datafini <= '0' rcnt <= rcnt + 1; rcrcvar := rdtemp(11 DOWNTO 6) XOR multi_coef; IF(rdtemp(11) = '1') THEN rdtemp <= rcrcvar(4 DOWNTO 0) & rdtemp(5 DOWNTO 0) & '0' ELSE rdtemp <= rdtemp(10 DOWNTO 0) & '0' EN

30、D IF; ELSIF(rt = '1' AND rcnt = 7) THEN datafini <= '1' rdata <= rdatacrc(16 DOWNTO 5); rt <= '0' IF(rdatacrc(4 DOWNTO 0) /= rdtemp(11 DOWNTO 7) THEN ERROR0 <= '1' END IF; END IF; END IF;END PROCESS;END comm; 4. 17位寄存器设计对于12位信息码所产生的17 位CRC码,我们需要17位的寄存器进行存储

31、。17位寄存器的设计方法是相同的,只需要对VHDL带代码做适当的修改。5. 整体电路通过前面几步的设计,我们已经把所有模块都设计完了,现在我们就是把前面设计好电路整起来,组成一个完整的电路。整合步骤: 首先创建一个文件夹,然后在Quartus软件上新建一个工程并存放在所创建那个文件夹中,再在刚所新建的工程中新建一个Block Digram File,然后将前面已经做好的模块添加到该文件中,再将它们连起来。即可组成一个完整的电路图。整合电路图:图3-2 整合后的电路四.程序的调试与运行结果说明 总电路设计完成以后,接着一步就是检验检验电路是否正确。我们在QUARTUS II软件上依次为每一个模块的电路新建一个时序仿真波形图,最后再为总电路设计一个时序仿真波形图。具体步骤如下:分析输出结果仿真得到输出端口波形设置输入端口波形添加输入输出端口设置仿真时间新建波形文件1. 建立工作库文件夹和编辑设计文件 为了检验电路设计是否正确,首先由要检验的电路新建一个波形文件,然后再做时序仿真,输入相应数据,检验与预期

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论