欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    开放式CPU运算器部件实验移位器.docx

    • 资源ID:11890908       资源大小:16.59KB        全文页数:14页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    开放式CPU运算器部件实验移位器.docx

    1、开放式CPU运算器部件实验移位器运算器部件实验 移位器一、实验目的1、理解寄存器、移位器的原理。2、掌握5种移位器及其用途。二、实验原理1、算术左移SAL(shift arithmetical left)、算术右移SAR(shift arithmetical right)把操作数看成带符号数,对寄存器操作数进行移位,左移时空出的位补0,右移时空出的位补与最高位相同的1或0,如下图算术左移算术右移2、逻辑左移SLL(shift logical left)、逻辑右移SLR(shift logical right)把操作数看成无符号数,对寄存器操作数进行移位。左移时空出的位补0,右移时空出的位补0,

    2、如下图逻辑左移03、循环左移ROF(rotation left)、循环右移ROR(rotation right)循环左右移其实是一样的,比如说8位的操作数,左移n(0n8)位和右移n-8位结果是一样的。左移时,移出的最高位移回到最低位;右移时,移出的最低位移回到最高位,如下图循环左移循环右移三、实验步骤1、打开Quartus ,安装ByteBlaster 。2、将子板上的JTAG端口和PC机的并行口用下载电缆连接。打开试验台电源。3、执行ToolsProgrammer 命令,将shifter.sof下载到FPGA中。4、在实验台上通过模式开关选择FPGA-CPU独立调试模式010。四、输入输出

    3、规则1、将开关CLKSEL拨到1,将短路子DZ3短接且短路子DZ4断开,使FPGA-CPU所需要的时钟使用正单脉冲时钟。2、输入的8位操作数D7D0对应开关SD15SD8。3、移动的位数n(3位数)对应开关SD7SD5。4、方向dir(左移还是右移)对应开关SD4,0代表左移,1代表右移。5、移位类型kind(2位)对应开关SD3SD2,00代表算数移,01代表逻辑移,10代表循环移。6、在按下实验台上的单脉冲按钮后,对操作数移位的结果在灯A7A0上体现。五、实验结果1 对8位数10110100进行移位操作,结果如下表1。表1 第一组数据:10110110操作运算ndirkind移位结果逻辑左

    4、移2位01000111011000逻辑右移5位10110111111101算术左移3位0110001011000算术右移4位10010011111011循环左移1位00101001101101循环右移7位111110011011012 对8位数01001101进行移位操作,结果如下表2。表2 第二组数据:01001101操作运算ndirkind移位结果逻辑左移2位01000100110100逻辑右移5位10110111111101算术左移3位01100001101000算术右移4位10010000000100循环左移1位00101010011010循环右移7位111110100110103 对

    5、8位数01010101进行移位操作,结果如下表3。表3 第三组数据:01010101操作运算ndirkind移位结果逻辑左移2位01000101010100逻辑右移5位10110111111010算术左移3位01100010101000算术右移4位10010000000101循环左移1位00101010101010循环右移7位11111010101010六、心得体会通过这次实验初步对实验台布局有了大致了解。又重新使用VHDL,在很多细节但很重要的方面摔倒、爬起,比如说信号量赋值是在进程结束后完成,但编程时却忘记这一规则,在进程内就使用了未完成赋值的信号量,结果出错。另外,移位器编写时由于分类较

    6、多,只关注了case 的各种情况,而忽略了时钟信号的使用,以至于调试时测试了很久都是在开关拨动时移位就开始了,而不等时钟信号的控制,这些都是粗心大意惹的祸,浪费了很多时间,以后倍加注意。library ieee;use ieee.std_logic_1164.all;entity move isport (clk : in std_logic;D:in std_logic_vector(7 downto 0);N:in std_logic_vector(2 downto 0);dir:in std_logic;kind:in std_logic_vector(1 downto 0);light

    7、:out std_logic_vector(7 downto 0);end entity;architecture rtl of move isbeginprocess (clk)beginif(clkevent and clk=1)thenif(dir=0)thenif(kind=10)thencase N iswhen 001=light(7 downto 1)=D(6 downto 0);light(0)light(7 downto 2)=D(5 downto 0);light(1)=D(7);light(0)light(7 downto 3)=D(4 downto 0);light(2

    8、 downto 0)light(7 downto 4)=D(3 downto 0);light(3 downto 0)for i in 7 downto 5 looplight(i)=D(i-5);end loop;light(4 downto 0)light(7)=D(1); light(6)=D(0);light(5 downto 0)light(7)=D(0); light(6 downto 0)lightfor i in 7 downto 1 looplight(i)=D(i-1);end loop;light(0)for i in 7 downto 2 looplight(i)=D(

    9、i-2);end loop;light(1)=0;light(0)for i in 7 downto 3 looplight(i)=D(i-3);end loop;light(2 downto 0)for i in 7 downto 4 looplight(i)=D(i-4);end loop;light(3 downto 0)for i in 7 downto 5 looplight(i)=D(i-5);end loop;for i in 4 downto 0 looplight(i)light(7)=D(1); light(6)=D(0);for i in 5 downto 0 loopl

    10、ight(i)light(7)=D(0);for i in 6 downto 0 looplight(i)lightfor i in 0 to 6 looplight(i)=D(i+1);end loop;light(7)for i in 0 to 5 looplight(i)=D(i+2);end loop;light(6)=D(0);light(7)for i in 0 to 4 looplight(i)=D(i+3);end loop;light(5)=D(0);light(6)=D(1);light(7)for i in 0 to 3 looplight(i)=D(i+4);end l

    11、oop;light(7 downto 4)for i in 0 to 2 looplight(i)=D(i+5);end loop;light(7 downto 3)light(0)=D(6);light(1)=D(7);light(7 downto 2)light(0)=D(7);light(7 downto 1)lightfor i in 0 to 6 looplight(i)=D(i+1);end loop;light(7)for i in 0 to 5 looplight(i)=D(i+2);end loop;light(6)=D(7);light(7)for i in 0 to 4

    12、looplight(i)=D(i+3);end loop;light(5)=D(7);light(6)=D(7);light(7)for i in 0 to 3 looplight(i)=D(i+4);end loop;light(4)=D(7);light(5)=D(7);light(6)=D(7);light(7)for i in 0 to 2 looplight(i)=D(i+5);end loop;for i in 3 to 7 looplight(i)light(0)=D(6);light(1)=D(7);for i in 2 to 7 looplight(i)light(0)=D(

    13、7);for i in 1 to 7 looplight(i)lightfor i in 0 to 6 looplight(i)=D(i+1);end loop;light(7)for i in 0 to 5 looplight(i)=D(i+2);end loop;light(6)=0;light(7)for i in 0 to 4 looplight(i)=D(i+3);end loop;light(5)=0;light(6)=0;light(7)for i in 0 to 3 looplight(i)=D(i+4);end loop;light(4)=0;light(5)=0;light(6)=0;light(7)for i in 0 to 2 looplight(i)=D(i+5);end loop;for i in 3 to 7 looplight(i)light(0)=D(6);light(1)=D(7);for i in 2 to 7 looplight(i)light(0)=D(7);for i in 1 to 7 looplight(i)light=D; end case;end if; end if;end if;end process;end rtl;


    注意事项

    本文(开放式CPU运算器部件实验移位器.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开