网站大量收购独家精品文档,联系QQ:2885784924

VHDL课程及设计-计算器模块及设计.docx

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

计算器模块设计 姓名:王文杰 班级:1421202 学号: 201420120201 专业:测控技术与仪器计算器模块设计摘要计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备组成。低档计算器的运算器、控制器由数字逻辑电路实现简单的串行运算,其随机存储器只有一、二个单元,供累加存储用。使用简单计算器可进行加(+)、减(-)、乘(*)、除(/)、开方(sqrt)、百分数(%)、倒数(1/x)等简单算术计算。本次设计只完成加(+)、减(-)、乘(*)、除(/)运算。实验设计一 设计内容与设计要求1设计内容:设计一个简易计算器2设计要求:实现最大输入两位十进制数字的四则运算(加减乘除)能够实现多次连算(无优先级,从左到右计算结果)最大长度以数码管最大个数为限,溢出报警有正负数区分;除法不能除尽时小数保留2位有效数字能够区分运算优先级(先乘除,后加减)二 系统具体设计、1总体框架2各个模块设计①数据输入模块(VHDL附录9)受限于输入按键有限,输入的两位二进制数有计数器实现,每按下clk加1,到99后恢复零元件例化:VHDL编程:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity leijia is port( reset:in std_logic; clk: in std_logic; dataout: out std_logic_vector(7 downto 0) );end entity leijia;architecture behave of leijia is signal temp:std_logic_vector(7 downto 0);begindataout=temp;process(clk,reset)beginif(reset=0)then if(clkevent and clk=1)then if(tempthen temp else temp=temp+1; end if; end if;else tempend if;end process;end behave;②加减选择模块 减法是加法的逆运算,A-B等同于A+(-B),即减法运算只需在进行加法运算前把数据的正负取反,所以当减法的下降沿时输出的正负为输入的取反,加法的下降沿时输出的正负为输入的,实现方法与乘除选择模块一致。元件例化:VHDL编程:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity tt2 is port( reset:in std_logic; pn:in std_logic; clk1: in std_logic; clk2: in std_logic; pnout:out std_logic; dout:out std_logic );end entity tt2;architecture behave of tt2 is signal temp:std_logic;begin dout=temp; process(clk1,clk2)beginif(reset=0)thenif(clk1=1)then temp=0;elsif(clk2event and clk2=0)then temp=1;end if;if(temp=1)then pnout=not(pn);else pnout=pn;end if;else temp=0;end if;end process;end behave;③加减运算模块由于上一级已考虑加减情况,此模块只需实现加法运算。A+B有四种情况:A0,B0 输出数据A+B,正负号为正2、A0,B0 |A||B| 输出数据|A|-|B| 正负号为正|A||B| 输出数据|B|-|A| 正负号为负3、A0,B0 |A||B| 输出数据|A|-|B| 正负号为负|A||B| 输出数据|B|-|A| 正负号为正A0,B0 输出数据A+B,正负号为负 其中c

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档