计算机组成原理实验单周期CPU的设计与实验
图4-9模块MUX32_2_1综合结果
? Step 4:仿真(Simulation)
在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择New Source命令,会弹出如图4-10所示的New Source Wizard对话框:Select SourceType。在图4-10选择Verilog Test Fixture,输入测试文件名:MUX32__2_1_tb,单击Next按钮,进入下一个对话框,如图4-11所示。
图4-10创建仿真模块(1)
图4-11创建仿真模块(2)
在图4-11中工程中所有的模块名都会显示出来(由于目前工程中只有一个模块,故只显示了一个模块名),选择要测试的模块MUX32_1,点击Next按钮,再点击Finish按钮,ISE会在源代码编辑区自动生成测试模块的代码,如图4-12所示。
计算机科学与工程学院
14
计算机组成原理实验单周期CPU的设计与实验
图4-12Verilog Test Fixture– MUX32_1
在图4-12中示了刚生成的MUX32_1_tb模块,在该模块中添加如下测试代码:
?
// Add stimulus here
A <= 32'haaaa0000;
B <= 32'hbbbb1111; Sel <= 1'b0;
#100;
Sel <= 1'b1; end
endmodule
完成测试文件编辑后,确认工程管理区中View选项设置为Simulation,并选中MUX32_2_1_tb模块。这时在过程管理区会显示与仿真有关的进程,如图4-13中Processes栏所示。
图4-13选择仿真行为
在图4-13中右键单击其中的Simulate Behavioral Model项,选择弹出菜单中的Process Properties项,会弹出如图4-14所示的属性设置对话框,其中Simulation Run Time就是仿真时间的设置,可将其修改为任意时长。
计算机科学与工程学院 15
计算机组成原理实验单周期CPU的设计与实验
图4-14Process Properties对话框
仿真参数设置完后,就可以进行仿真。首先在工程管理区选中测试代码,然后在过程管理区双击Simulate Behavioral Model,ISE将启动ISE Simulator,可以得到仿真结果,如图4-15所示。
图4-15模块MUX32_1仿真效果
? Step 5:约束(Constraints)与实现(Implementation)
要实现设计,还需要为模块中的输入/输出信号添加管脚约束,这就需要在工程中添加UCF(User Constraints File)文件。在工程管理区单击鼠标右键,点击New Source,弹出如图4-6所示对话框,在类型中选择Implementation Constraints File,输入文件名:MUX32_2_1_ucf,选择关联模块:MUX32_2_1。系统会生成一个空白的约束文件并打开。我们就可以为设计添加各种约束。
本实验中用Anvyl中的8个Switch对应2组4位二进制输入,用4个LED发光二极管对应输出,BTN0按钮对应选择信号Sel。因为是组合电路,不需要时钟。具体约束内容如下:
NET Sel LOC = E6;
#switches
NET A<0> LOC= V5;
计算机科学与工程学院
16
计算机组成原理实验单周期CPU的设计与实验
NET A<1> LOC= U4; NET A<2> LOC= V3; NET A<3> LOC= P4; NET B<0> LOC= R4; NET B<1> LOC= P6; NET B<2> LOC= P5; NET B<3> LOC= P8;
#Leds
NET O<0> LOC=W3; NET O<1> LOC=Y4; NET O<2> LOC=Y1; NET O<3> LOC=Y3;
约束完成后,下一个步骤就是实现(Implementation)。所谓实现,是指将综合输出的逻辑网表翻译成所选器件的底层模块和硬件原语,将设计映射到器件结构上,进行布局布线,达到在选定器件上实现设计的目的。
在ISE中,执行实现过程,会自动执行翻译、映射和布局布线过程:也可单独执行。在过程管理区双击Implementation Design选项,就可以自动完成实现的3个步骤,如图4-16所示。
图4-16Running Synthesis
完成Place & Route后,在图4-16中双击Generate Programming File项生成二进制比
特文件mux32_2_1.bit。
? Step 5:流代码生成与下载
完成Place & Route后,在图4-16中双击Generate Programming File项生成二进制比
特文件mux32_2_1.bit。
将Anyvl开发板与计算机通过USB线连接好,开发板加电,启动Digilent Adept软件,系统开始自动连接FPGA设备,成功检测到设备后,会显示出JTAG链上所用芯片,如图4-17所示。
计算机科学与工程学院 17
计算机组成原理实验单周期CPU的设计与实验
图4-17Digilent Adept软件
在图4-17中点击Browse按钮,找到刚才生成的二进制比特文件mux32_1.bit,然后点击Program按钮开始下载,下载成功后会在图4-17下面的状态栏中显示Programming Successful。同学们可在开发板上拨动开关SW0S~SW7和按钮BTN0,并观察LED0~LED3的显示,思考一下观察的结果与设计是否一致。
4.2 32位4选1选择器的设计与实现
32位4选1选择器的逻辑框图如图4-18所示。
Sel[1:0] Function:
A[31:0] B[31:0] C[31:0] D[31:0] M U X Sel[1:0]= 00:O = A
O[31:0]
Sel[1:0]= 01:O = B Sel[1:0]= 10:O = C Sel[1:0]= 11:O = D
图4-18 32位4选1逻辑框图
32位4选1选择器的模块设计步骤可参考32位2选1选择器的设计步骤,下面给出32位4选1选择器的模块代码。
module MUX32_4_1(
input [31:0] A, input [31:0] B, input [31:0] C, input [31:0] D, input [1:0] Sel, output[31:0] O
计算机科学与工程学院
18