微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > Nexys3学习手记7:MicroBlaze小试牛刀

Nexys3学习手记7:MicroBlaze小试牛刀

时间:02-11 来源:网络整理 点击:
croBlaze,它连接了AXI总线用于外设扩展,这条总线上挂着的外设包括了我们特意添加的GPIO外设LEDS;此外,microblaze_0的两个LMR接口分别连着microblaze_0_i_bram_ctrl和microblaze_0_d_bram_ctrl,从命名上不能推断出着两个组件应该是CPU的指令(instrucTIon)和数据(data)存储控制器,而靠右侧的红色连接部分又分别将他们与microblaze_0_bram_ctrl组件相连接,说明这个microblaze_0_bram_ctrl便是CPU的主存储控制器。此外,两个相对独立的clock_generator_0和proc_sys_reset_0则为系统时钟和复位产生组件。

图10 IP组件列表         接着我们来看看Ports部分,如图11所示。这里展开External Ports便是该系统所有需要与外部进行直接隐射的管脚。LEDS_TRI_O便是8个连接到板上指示灯的信号,RESET是低电平有效的复位信号,而CLK_N和CLK_P是一对100MHz输入的差分信号。由于我们的外部输入100MHz时钟不是差分的,而是单时钟接口,因此需要简单的做些修改。         展开clock_generator_0,在CLKIN一栏右击选择"New ConnecTIon",此时如图12所示,差分时钟便成了单时钟接口了。鼠标落在这个单时钟信号上再次右击并选择"Make External",这个单端时钟接口便出现在了External Ports中。而之前的差分时钟接口并未在External Ports中消失,需要依次右击并选择"Delete External Ports"便可将其删除。

图11 系统外部连接信号

图12 更改后的CLKIN         修改好之后的External Ports列表如图13所示。图13 更改后的External Ports         完成时钟信号修改,点击XPS菜单栏HardwareàGenerate Netlist生产这个嵌入式硬件系统的网表。回到ISE中,在Hierarchy下多出了mysoc.xmp文件,选中它。在Processes下展开Design UTIlities,双击View HDL Instantiation Template生产系统的例化模板文件,如图14右侧所示。

图14 生成系统例化模板         将此模板复制到ISE顶层源代码中,相应匹配好接口,原先的8个LED接口将由软件编程控制。顶层源代码修改如下:module testled(            clk,rst_n,            led        ); input clk;      //100MHzinput rst_n;    //低电平复位信号 output[7:0] led;    //连接到LED指示灯  wire clk_100m;      //clocking输出100MHzwire clk_50m;       //clocking输出50MHzwire clk_25m;       //clocking输出25MHzwire clk_12m5;      //clocking输出12.5MHzwire clk_locked;    //clocking输出完成标志位 //---------------------------------------------------//IP核Clocking Wizard例化//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG   myclocking uut_myclocking   (// Clock in ports    .CLK_IN1(clk),      // IN    // Clock out ports    .CLK_OUT1(clk_100m),     // OUT    .CLK_OUT2(clk_50m),     // OUT    .CLK_OUT3(clk_25m),     // OUT    .CLK_OUT4(clk_12m5),     // OUT    // Status and control signals    .RESET(!rst_n),// IN    .LOCKED(clk_locked));      // OUT// INST_TAG_END ------ End INSTANTIATION Template --------- //---------------------------------------------------// 例化mysoc系统(* BOX_TYPE = "user_black_box" *)mysoc uut_mysoc (    .RESET(rst_n),    .LEDS_TRI_O(led),    .clock_generator_0_CLKIN_pin(clk_100m)    ); endmodule         最后我们双击"Generate Programming File"完成硬件系统的编译和下载文件生成。          下一步我们把平台转移到SDK,在工程目录下新建一个名为SDK_workspace的文件夹,然后打开SDK时需要选择一个workspace,如图15所示,对应定位到SDK_workspace文件夹下即可。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top