硬件结构设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

摘要: (2)

硬件结构设计原理: (3)

原理图: (4)

管脚图: (5)

微程序控制操作方法: (8)

微程序: (9)

Romc改编代码 (9)

data_bus改编代码 (11)

摘要:

本次实验的功能是进行两个4位数的加法运算,并进行结果输出。在本次实验中,我们用到data_bus作为总线进行传输,reg_74373作为寄存器进行数据的存储,alu_74181进行加法运算。romc作为译码器进行初始状态的设定。通过这个加法器的设计,能够对硬件结构设计有了更好的了解,同时也加深了对计算机组成原理课程的理解。

硬件结构设计原理:

1.把模块romc改为九位输出oen,we1,we2,gwe1,oen_n1,gwe2,

oen_n2,gwe3,oen_n3;

2.把模块reg_74244改为四位输入Din(3 0)和四位输出Qout(3 0);

3.把模块data_bus改为四位输入data_in1(3 0),Data_in2(3 0),四位输出data_out1(3 0),data_out2(3 0),data_out3(3 0);

4.把模块reg_74373改为四位输入Din(3 0)和四位输出Qout(3 0);

5.把模块alu_74181改为四位输入A(3 0),B(3 0),S(3 0),和四位输出F(3 0)

6.由romc向reg_74244中分别输入两个四位二进制的数,通过九位romc微程序控制器,在进入data_bus后,两个数分别被写入两个reg_74373中,再进入alu_74181进行加法运算,将运算结果输入data_bus,再由另外一个reg_74373读出。

###------------CLOCK-----------

NET "clk" LOC = "L15";

###-------------Atlys led output------------------- #NET "atlys_led[0]" LOC = U18; #Atlys LD0

#NET "atlys_led[1]" LOC = M14; #Atlys LD1

#NET "atlys_led[2]" LOC = N14; #Atlys LD2

#NET "atlys_led[3]" LOC = L14; #Atlys LD3

#NET "atlys_led[4]" LOC = M13; #Atlys LD4

#NET "atlys_led[5]" LOC = D4; #Atlys LD5

#NET "atlys_led[6]" LOC = P16; #Atlys LD6

#NET "atlys_led[7]" LOC = N12; #Atlys LD7

###-----------Atlys Switch input------------------- #NET "atlys_sw[0]" LOC = A10; # Atlys sw0

#NET "atlys_sw[1]" LOC = D14; # Atlys sw1

#NET "atlys_sw[2]" LOC = C14; # Atlys sw2

#NET "atlys_sw[3]" LOC = P15; # Atlys sw3

#NET "atlys_sw[4]" LOC = P12; # Atlys sw4

#NET "atlys_sw[5]" LOC = R5; # Atlys sw5

#NET "atlys_sw[6]" LOC = T5; # Atlys sw6

#NET "atlys_sw[7]" LOC = E4; # Atlys sw7

###------------EES261 switch input---------- NET "din[0]" LOC = "U11"; #SW20

NET "din[1]" LOC = "R10"; #SW19

NET "din[2]" LOC = "U10"; #SW18

NET "din[3]" LOC = "R8"; #SW17

NET "S[0]" LOC = "M8"; #SW16

NET "S[1]" LOC = "U8"; #SW15

NET "S[2]" LOC = "U7"; #SW14

NET "S[3]" LOC = "N7"; #SW13

#NET "C_n" LOC = "T6"; #SW12

#NET "C_n_Plus" LOC = "R7"; #SW11

#NET "XLXN_9" LOC = "N6"; #SW10

#NET "swt[8]" LOC = "U5"; #SW9

#NET "swt[7]" LOC = "V5"; #SW8

#NET "swt[6]" LOC = "P7"; #SW7

#NET "swt[5]" LOC = "T7"; #SW6

#NET "swt[4]" LOC = "V6"; #SW5

NET "s0" LOC = "P8"; #SW4

NET "s1" LOC = "V7"; #SW3

NET "s2" LOC = "V8"; #SW2

NET "s3" LOC = "N8"; #SW1

##----------EES261 leds output------------

NET "XLXN_21<0>" LOC = "U16"; #LED1 NET "XLXN_21<1>" LOC = "U15"; #LED2 NET "XLXN_21<2>" LOC = "U13"; #LED3 NET "XLXN_21<3>" LOC = "M11"; #LED4 NET "XLXN_9" LOC = "R11"; #LED5

#NET "led<5>" LOC = "T12"; #LED6

#NET "led<6>" LOC = "N10"; #LED7

#NET "led<7>" LOC = "M10"; #LED8

###-------hex7seg------------------- # NET "an<0>" LOC = "V16";

# NET "an<1>" LOC = "V15";

# NET "an<2>" LOC = "V13";

# NET "an<3>" LOC = "N11";

# NET "a_to_g<0>" LOC = "T8"; #a # NET "a_to_g<1>" LOC = "V10"; #b # NET "a_to_g<2>" LOC = "T10"; #c # NET "a_to_g<3>" LOC = "V11"; #d # NET "a_to_g<4>" LOC = "N9"; #e # NET "a_to_g<5>" LOC = "P11"; #f # NET "a_to_g<6>" LOC = "V12"; #g # NET "dp" LOC = "T11"; #dp ###--------------END---------

相关文档
最新文档