- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
姓名:何飞龙 学号:1315212010
2.设计一个补码定点小数乘法运算器。设被,乘数,积,均为补码形式的定点小数。start是启动信号,down是除法完成信号,overflow是“溢出”报警信号,reset是清零信号,clock是时钟信号。请给出此除法器的VHDL功能描述,并编写测试向量文件,通过分析模拟结果验证设计的正确性。(X 补=1.0011,Y补=1.0101)
程序代码:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY mult5 IS
generic ( n: integer :=5;
m: integer :=9 );
PORT(start,reset,clock: IN STD_LOGIC;--kaishi,fuwei,shizhong
done,overflow: OUT STD_LOGIC;--wancheng,yichu
y,x: IN STD_LOGIC_VECTOR(n DOWNTO 1);--bei cheng shu,chengshu
p: OUT STD_LOGIC_VECTOR(m DOWNTO 1));--shuchu
END ENTITY mult5;
ARCHITECTURE behav OF mult5 IS
SIGNAL ry: STD_LOGIC_VECTOR(n DOWNTO 1); --
SIGNAL pp: STD_LOGIC_VECTOR(m+1 DOWNTO 0);------------
SIGNAL state: integer RANGE 0 TO 5;-------
BEGIN
PROCESS(reset,clock)
VARIABLE temp: STD_LOGIC_VECTOR(n+1 DOWNTO 1);
BEGIN
IF reset=0 THEN
ry = (others=0);
pp = (others=0);
state = 0;
done = 0;
ELSIF clockEVENT AND clock=1 THEN
CASE state IS
WHEN 0= ry = y; pp = 00000 x 0;
IF start= 1 THEN state = 1; END IF;
WHEN 5= IF pp(1 DOWNTO 0) = 01 THEN temp := (pp(m+1) pp(m+1 DOWNTO 6)) + (ry(n) ry);
ELSIF pp(1 DOWNTO 0) = 10 THEN temp:=(pp(m+1) pp(m+1 DOWNTO n+1))+NOT(ry(n) ry) + 1;
ELSE temp := (pp(m+1) pp(m+1 DOWNTO n+1)); END IF;
p=temp(n DOWNTO 1) pp(n DOWNTO 2);
if temp(n+1)=1 then overflow =1; else overflow =0; end if;
done = 1;
state = 0 ;
WHEN OTHERS = IF pp(1 DOWNTO 0) = 01 THEN temp := (pp(m+1) pp(m+1 DOWNTO n+1)) + ( ry(n) ry);--01 +B
ELSIF pp(1 DOWNTO 0)=10 THEN temp := (pp(m+1) pp(m+1 DOWNTO n+1)) + NOT(ry(n) ry) + 1;--10-B
ELSE temp := (pp(m+1) pp(m+1 DOWNTO n+1)); END IF;
pp = temp pp(n DOWNTO 1); -------Cyou yi
state = state + 1;
END CASE;
END IF;
END PROCESS;
END behav;
编译综合:
运行结果:
RTL电路:
设计一个正数定点小数除法运算器。设被除数,除数,商,余数,均为正数。start是启动信号,down是除法完成信号,overflow是“溢出”报警信号,reset是清零信号,clock是时钟信号。请给出此除法器的VHDL功能描述,并编写测试向量文件,通过分析模拟结果验证设计的正确性。原码恢复余数法或原码不恢复余数法(加减交替法)。
程序代码:
LIBRAR
文档评论(0)