- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
从整数中提取个十百位VHDL算法
从整数中提取个十百位VHDL算法摘 要:计算机中十进制和二进制数据的转换,一般是通过软件来实现。但是基于冯·诺依曼结构的计算机,其指令是顺序执行的;而FPGA是并行执行方式,适合真正意义上的并行任务处理。因此基于VHDL编程实现从整数中提取个十百位,其执行速度要比采用软件语言编程快得多。 关 键 词:VHDL;进制转换;算法;效率 0.引言 历史上第一台电子数字计算机ENIAC是一台十进制机器,其数字以十进制表示,并以十进制形式运算。而自然界具有两种稳定状态的组件普遍存在,如开关的开和关,电路的通和断,电压的高和低等,非常适合表示计算机中的数。因此,现在改为二进制计算机。但由于二进制数不直观,人们在操作计算机时,输入、输出的数据一般使用十进制,因此需要通过软件将十进制转换为二进制。但是基于冯·诺依曼结构的计算机在运行程序时,均为先取出指令然后执行,并且指令是顺序执行的,其运算效率较低;而FPGA(包括CPLD)是并行执行方式,即当时钟沿到来时,所有的触发器都会动作,其执行效率较高。以下给出了两种基于VHDL编程的从整数中提取个十百位的算法。 1.算法一 求余-除-再求余-再除…… 例如: …… --此处省略库和实体描述 architecture bhv of conv is begin process(clk,in8) --in8为输入的8位二进制数 variable tmp,q1,q2:integer range 0 to 255; --定义3个变量 begin tmp:=conv_integer(in8); --将二进制数转换为十进制数 q1:=tmp/10; q2:=q1/10; --除以10 if clk’event and clk=‘1’ then out1=conv_std_logic_vector(tmp rem 10,4); --除10取余后转换为4位二进制数 out2=conv_std_logic_vector(q1 rem 10,4); out3=conv_std_logic_vector(q2 rem 10,4); end if; end process; end bhv; 程序执行后,out1,out2,out3分别是个位,十位,百位。 2.算法二 在FPGA内部定义3个寄存器,分别表示个位、十位、百位,让其实现0—999的千进制计数,当计数值等于输入的整数值时,计数停止,然后按顺序提取个十百位。 例如: …… --此处省略库和实体描述 architecture a of conv is signal da,db,dc:std_logic_vector(3 downto 0); --定义3个信号,分别代表个十百位 begin process(clk,in8) --in8为输入的8位二进制数 variable tmp: integer range 0 to 999 :=0; --定义1个变量,初始值为0 begin if(clk’event and clk=‘1’) then if(tmpin8) then --当计数值小于输入值时,计数器计数 if(da=9 and db=9 and dc=9) then --以下为千进制计数 da=“0000”; db=“0000”; dc=“0000”; elsif(da=9 and db=9) then da=“0000”; db=“0000”; dc=dc+1; tmp:=tmp+1; elsif(da=9)then da=“0000”; db=db+1; tmp:=tmp+1; else da=da+1; tmp:=tmp+1; end if; else --当计数值等于输入的整数值时,计数停止,然后按顺序提取个十百位。 tmp:=0; da=“0000”; db=“0000”; dc=“0000”; a0=da; a1=db; a2=dc; end if; end if; end process; end a; 程序执行后,a0,a1,a2分别是个位,十位,百位。 3.结束语 在数据处理中经常会遇到二进制与十进制的转换,但由于MCU、CPU、DSP等的内部结构都是设计好的,所以只能通过软件编程来进行顺序处理,速度相对较慢,FPGA则可以并行处理,完全可以将一个二进制数据作为输入,然后直接在内存中输出对应的ASCII码,这个速度是非常快的,只受限于内存读取速度。 参考文献 [1] 潘松,黄继业.EDA技术实用教程—VHDL版[M].北京:科学出版社,2010. [2] 何小海,严华.微机原理
您可能关注的文档
- 交流为作文讲评打开一扇窗.doc
- 交响音乐中民族气质及时代精神.doc
- 交流牵引传动控制策略综述.doc
- 交联酸加砂压裂技术探究及应用.doc
- 交给学生步入音乐殿堂钥匙.doc
- 交通工程课程实践教学探析.doc
- 交通运输专业学生创新能力培养途径探析.doc
- 交通运输工程专业学位探究生培养体系探索及实践.doc
- 交通运输行业人事档案信息化管理.doc
- 交锁髓内钉治疗肱骨骨折30例疗效观察.doc
- 2025至2030中国钢轨用轻质复合材料行业调研及市场前景预测评估报告.docx
- 2025至2030中国对薄荷3,8二醇(PMD)行业细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030中国弹道头盔行业细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030中国2,6二羧基吡啶市场前景规划及未来运营现状分析报告.docx
- 2025至2030中国玻璃温度计行业市场深度研究与战略咨询分析报告.docx
- 2025至2030中国地形感知和警告系统(TAWS)行业调研及市场前景预测评估报告.docx
- 2025至2030中国发电技术行业调研及市场前景预测评估报告.docx
- 2025至2030中国多离子束显微镜行业细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030中国储能技术行业市场占有率及有效策略与实施路径评估报告.docx
- 2025至2030中国丙酸氟替卡松吸入器行业市场占有率及有效策略与实施路径评估报告.docx
最近下载
- 国家开放大学《建筑构造》形考任务1-4参考答案.doc VIP
- 2025年6月全国大学英语CET六级真题和答案解析(第一套).pdf
- 酸奶中乳酸菌的分离、鉴定及性能研究-来源:现代食品(第2021003期)-郑州中粮科研设计院有限公司.pdf VIP
- 大学体验英语视听说教程1第2版习题答案.docx VIP
- 语文三年级语文园地教案.doc VIP
- 2025恒瑞杯中国内部审计准则知识竞赛题库答案.pdf VIP
- ampullary壶腹腺癌NCCN2025必威体育精装版指南.pdf VIP
- GB50068-2018建筑结构可靠性设计统一标准.doc VIP
- 山师教育心理学期末考试学习要点.pdf VIP
- AMS1117中文资料.pdf VIP
有哪些信誉好的足球投注网站
文档评论(0)