1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA计数器.docx

PAGE \* MERGEFORMAT21 目录 第一部分 EDA技术仿真应用 奇偶校验器 数据选择器 数值比较器 第二部分 EDA技术综合仿真设计 题目要求 设计思路 --2.1频率测量的基本思想 --2.2频率测量方法 --2.3误差来源 各模块具体设计及其仿真波形 --3.1 分频器模块 --3.2 门控模块 --3.3 计数模块 --3.4 锁存器模块 --3.5 BCD译码模块 --3.6 顶层(top)模块 摘要 系统设计与仿真实践是电子信息、通信工程专业的必修的专业实践课程,属研究设计类课程。在学习了电子电路、数字逻辑、单片机、电子系统设计等课程后,本课程设计是一个综合的集中实践环节,主要培养学生对仿真工具和各种电子技术的综合运用能力。CPLD/FPGA仿真设计,熟悉EDA软件MAX+PLUSII、QuartusII、proteus等,通过实际的仿真设计综合数字电子系统,得出正确合理的仿真结果,并在实验板上下载。也可以自主创新设计,在基本题功能做好的前提下可扩展电路的功能,对仿真设计性能指标进一步的完善和提高。 课程设计的地位与任务 第一部分:EDA技术仿真应用 应用VHDL 或 Verilog HDL语言设计以下数字电路,并仿真验证: 1. 奇偶校验器 1.1实验要求 奇偶校验器经常用在数字电路的检测中,用来检测一个二进制数据中的0或1的个数为奇数还是偶数,然后输出检测结果。根据输入的数值A中的个数是偶数的时候,输出端Y输出高电平,否则输出低电平。仿真相应的8位奇偶校验器。 1.2实验原理 实现奇偶检验的算法就是,如果是偶校验,只要将该8位数据第一位和第二位进行异或,然后将得到的结果和第三位异或,依次下去,直到和第七位异或,这样得到的最后结果,就是偶校验位;如果是奇校验,将上面的偶校验位取反即可。 如:8位数据分别为 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] 则输出偶校验位输出为a[0]^a[1]^a[2]^a[3]^a[4]^a[5]^a[6]^a[7] 奇校验位取反 例: 输入 则偶校验位输出为1 奇校验位输出为0 原理图电路: 1.3实验程序 module parity (even,odd,a); input[7:0] a; output even,odd; assign even = ^a; assign odd = ~even; endmodule 1.4仿真波形 1.5结果分析 如图,输入的8位数据,分别含有1-8个1或0时,输出结果明显与输入的1或0???个数相对应。 2.数据选择器 2.1实验要求 在数字信号的传输中,需要从一组数据选出某一个数据出来,常用的数据选择器有4选1、8选1、16选1等类型。要求设计8选1数据选择器并仿真验证。 2.2实验原理 通过两个4选1数据选择器,然后通过一个2选1数据选择器,实现8选1数据选择器的效果。 8选1数据选择器原理图电路: 2.3实验程序 4选1代码function: function mux4to1; input [0:3]w; input [1:0]s; if(s==0)mux4to1=w[0]; else if(s==1)mux4to1=w[1]; else if(s==2)mux4to1=w[2]; else if(s==3)mux4to1=w[3]; endfunction 8选一代码: module mux8_1(w,s8,f,sel); input[0:7]w; input[1:0]s8; input sel; output f; reg f; reg[0:3]M; function mux4to1; input [0:3]w; input [1:0]s; if(s==0)mux4to1=w[0]; else if(s==1)mux4to1=w[1]; else if(s==2)mux4to1=w[2]; else if(s==3)mux4to1=w[3]; endfunction always@(w or s8) begin M[0]=mux4to1(w[0:3],s8[1:0]); M[1]=mux4to1(w[4:7],s8[1:0]); if (sel==0) f=M[0]; else if(sel==1)

文档评论(0)

我的文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档