计算机组成原理项目--运算器的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华南师范大学计算机学院 吴继明老师 Tel:156 262 15986 E-mail:wujm1170@163.com
一. 运算器的设计——无符号数的加法/减法
1. 一位二进制数全加器FA、全减器FS的设计: 2. 四位无符号二进制数并行加法器的设计:
Hale Waihona Puke Baidu
3. 超前进位电路的设计:
4. 八位无符号二进制数并行加法器的设计: 5. 四位无符号二进制数并行减法器的设计: 6. 八位无符号二进制数并行减法器的设计: 7. 八位无符号二进制数并行加法/减法运算器的设计:
FA_4bits_unsign的设计
选择*.bdf 文件界面左侧的 Text Tool 1. 新建一个FA_4bitus_unsign 文件夹,把 FA、GP_circuit 、Carry_ahead器件的*.vhd文 件和*.bsf文件复制到该文件夹中,新建一个项目 存放于该文件夹中; (字符A),更改每个FA_4bits_unsign input中的 2. 新建文件:New files->Design Files->Block Diagram/schematic File pin_name。对 input的连接线单击右 3. 插入器件:新文件中单击右键->insert->symbol„->Libraries:Project,把该项目文 键->Properties->Name中输入该端口 件夹中的*.bsf文件全部插入新建文件中,对于需多次使用的FA器件 ,可以选择Repeat的名字 insert mode模式,摁 esc结束插入器件FA; 4. 插入输入、输出引脚:新文件中单击右键->insert->symbol„,在name搜索框中输入 “input”右侧立即出现输入引脚符号图,重复插入9个该器件;用同样的方法插入7个 “output”器件;用图形描述框设计文件时,器件对外的输入输出端口都要用插入方式 5. 输入输出引脚命名:给每个input、output符号及其连接线命名 6. 标注FA:把每个FA器件中的inst更改为FA0~FA3,所有FA的输入端口采用名字属性关联 连线,FA的S输出直接连线到相应的output器件; 7. 器件连接:根据逻辑电路图将各个器件的端口连接起来; 8. 编译、仿真:功能仿真正确后,给*.bdf文件生成符号文件*.bsf
FA_wjm013 A_wjm013 B_wjm013 C_in_wjm013 inst S_out_wjm013 C_out_wjm013
FS_wjm013 A_wjm013 B_wjm013 B_in_wjm013 inst S_out_wjm013 B_out_wjm013
FS器件设计——用VHDL Files设计
1. 新建项目,采用图形描述框文件(Block Diagram/Schematic File)设计 2. 项目中必须包含的底层支撑器件文件:成对的*.bsf和*.vhd或*.bsf和*.bdf。 例如:F_4bits_unsign项目中必须包含GP_Circuit_4.bsf, 而 GP_Circuit_4.bsf由其源文件GP_Circuit_4.vhd产生,因此F_4bits_unsign 项目中也必须包含GP_Circuit_4.vhd文件; 同理F_4bits_unsign项目中必须包含Carry_ahead_4.bsf,而 Carry_ahead_4.bsf由其源文件Carry_ahead_4.vhd产生,因此 F_4bits_unsign项目中也必须包含Carry_ahead_4.vhd 文件; F_4bits_unsign项目中包含FA.bsf和FA.vhd文件,是同样道理。
4/8位无符号二进制数并行加法器
1. 进位产生/传播电路:GP_circuit_4,Gi=AiBi,Pi=Ai+Bi 输入端口:A0B0~A3B3, 输出端口:G0P0~G3P3 2. 超前进位电路的推导: 3. 超前进位电路(4位)的设计:Carry_ahead_4 输入端口G0P0~G3P3,C_in;输出端口G4_0,P4_0,C0,C1,C2,C3 4. 四位无符号二进制数并行加法器:FA_4bits_unsign 4. 先行进位电路(4位):可以用超前进位电路实现 5. 八位无符号二进制数并行加法器:FA_8bits_unsign 输入端口:A7…A0~B7…B0,C_in 输出端口:S7…S0,ZF,CF(C7),C6,ZF标志位的产生方法:
4位无符号二进制数加法 FA_4bits_unsign.bdf
进位产生/传播电路 GP_circuit_4.bsf
GP_circuit_4.vhd
超前进位电路 Carry_ahead_4.bsf
Carry_ahead_4.vhd
全加器 FA.bsf
FA.vhd
4位无符号二进制数加法器设计前的准备
全加器真值表
A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C_in 0 1 0 1 0 1 0 1 S 0 1 1 0 1 0 0 1 C_out 0 0 0 1 0 1 1 1 A 0
全减器真值表
B 0 B_in 0 S 0 B_out 0
0 0 0 1 1 1 1
0 1 1 0 0 1 1
library ieee; use ieee.std_logic_1164.all; entity FS_wjm013 is port(A_wjm013,B_wjm013,B_in_wjm013:in std_logic; S_out_wjm013,B_out_wjm013:out std_logic); end FS_wjm013; architecture one of FS_wjm013 is begin S_out_wjm013<=(A_wjm013) xor B_wjm013 xor B_in_wjm013; B_out_wjm013<=((not A_wjm013) and B_wjm013)or(((not A_wjm013) or B_wjm013)and B_in_wjm013); end one;
1位二进制数全加器FA、全减器FS推导
全加器FA:输入端口A,B,C_in;输出端口S,C_out
S A B C _in,C_out AB (A B ) C _ in
全减器FS:输入端口A,B,B_in;输出端口S,B_out
S=A B B _in, B_out B B _ in (B+B_in) A=AB (A B ) B _ in
GP_circuit_4_wujm013 A0_wujm013 B0_wujm013 A1_wujm013 B1_wujm013 A2_wujm013 B2_wujm013 A3_wujm013 B3_wujm013 G0_wujm013 P0_wujm013 G1_wujm013 P1_wujm013 G2_wujm013 P2_wujm013 G3_wujm013 P3_wujm013
同理,可以推导出C7、C11、C15的逻辑表达式
C7=G4_1+P4_1 C3 C11=G4_2+P4_2 C7 C 15 G 4 _ 3 P 4 _ 3 C 11 C3=G4_0+P4_0 C_in C7=G4_1+P4_1G4_0+P4_1P4_0 C_in C11=G4_2+P4_2G4_1+P4_2P4_1G4_0+P4_2P4_1P4_0 C_in C15=G4_3+P4_3G4_2+P4_3P4_2G4_1+P4_3P4_2P4_1G4_0 +P4_3P4_2P4_1P4_0 C_in
1 0 1 0 1 0 1
1 1 0 1 0 0 1
1 1 1 0 0 0 1
FA、FS、GP_circuit_4、Carry_ahead_4的设计
1. 项目命名:器件名_姓名拼音的声母+学号后3位 2. 文件命名:必须和项目名字完全一致 3. 实体命名:必须和项目名字完全一致 4. 器件端口命名:端口名器件名_姓名拼音的声母+学号后3位 5. FA及端口命名:FA_wjm013,A_wjm013,B_wjm013, C_in_wjm013,S_out_wjm013,C_out_wjm013 6. FS及端口命名:FS_wjm013,A_wjm013,B_wjm013, B_in_wjm013,S_out_wjm013,B_out_wjm013 7. GP_circuit_4、carry_ahead_4的设计:同上
carry _ahead_4_wujm013
G4_0
carry _ahead_4_wujm013
G_4_0_0
G0_wujm013 P0_wujm013 G1_wujm013 P1_wujm013 G2_wujm013 P2_wujm013 G3_wujm013 P3_wujm013 C_in_wujm013 inst G4_0_wujm013 P4_0_wujm013 C0_wujm013 C1_wujm013 C2_wujm013 C3_wujm013
7. 在菜单processing中点击generate functional simulation netlist 8. 新建仿真文件:Verification/Debugging Files—Vector Waveform Files 9. 仿真设置:在菜单assignments中选择settings,进入simulator settings,
对simulation mode选择functioanl 10. 功能仿真:分析数据,判断器件逻辑功能是否正确。 11. 创建器件符号:创建器件符号文件*.bsf,并添加到项目文件夹中。
FA器件的设计——用VHDL Files设计
library ieee; use ieee.std_logic_1164.all; entity FA_wjm013 is port(A_wjm013,B_wjm013,C_in_wjm013:in std_logic; S_out_wjm013,C_out_wjm013:out std_logic); end FA_wjm013; architecture one of FA_wjm013 is begin S_out_wjm013<=A_wjm013 xor B_wjm013 xor C_in_wjm013; C_out_wjm013<=(A_wjm013 and B_wjm013)or((A_wjm013 or B_wjm013)and C_in_wjm013); end one;
P4_0 G4_1 P4_1 G4_2 P4_2 G4_3 P4_3
P_4_0_0 C3 C7 C11 C15
inst
inst
定义Gi AiBi,Pi Ai Bi C 0 G 0 P 0 C _ in , C 1 G 1 P 1C 0 G 1 P 1G0+P1P0 C_in C2=G2+P2C1=G2+P2G1+P2P1G0+P2P1P0 C_in C 3 G 3 P 3C 2 G 3 P 3G 2 P 3P 2G 1 P 3P 2P 1G 0 P 3P 2P 1P 0 C_in 定义G 4 _ 0 G 3 P 3G 2 P 3P 2G 1 P 3P 2P 1G 0 P4_0 P 3P 2P 1P 0, 则C3=G4_0+P4_0 C_in
G0_wujm013 P0_wujm013 G1_wujm013 P1_wujm013 G2_wujm013 P2_wujm013 G3_wujm013 P3_wujm013 C_in_wujm013
G4_0_wujm013 P4_0_wujm013 C0_wujm013 C1_wujm013 C2_wujm013 C3_wujm013
项目创建中应用VHDL文件设计器件
1.单击鼠标右键,选择insert---insert node or bus.. 2.在insert node or bus对话框中,单击node finder 3.在 node finder对话框中,对 Filter 选择 pins :all,单击list 方法 1:对 Project Navitors->Files 中*.vhd 1. 建立一个文件夹存放项目,文件夹命名要反映出器件名称信息 4.把 Nodes II Found 中显示的Node 按一定顺序加入到 Selected Nodes中。 2. 在Quartus 中创建一个新项目,给项目取名字; 单击右键 create symbol files for current 5.单击 OK完成仿真文件创建 file 3. 项目创建好后,点击新建文件,选择 Desgin Files---VHDL files 6.在菜单 Edit中分别设定End 方法 Time 和 Grid Time 值 4. 包含需要使用的系统库文件: library ieee;use ieee.std_logic_1164.all; 2:打开 *.vhd 文件,在菜单 File5. 定义实体和结构体,保存文件:实体、文件名必须和项目名字完全一致 7.设定波形文件中各个输入 Node 的值,验证器件逻辑功能是否正确。 >Create/Update 中选择create symbol 6. 编译:对结构体编码好后,点击编译文件 files for current file
相关文档
最新文档