您的位置 首页 产品

根据MicroBlaze的AXI总线实时时钟IP核规划

引言MicroBlaze是可以嵌入到FPGA中的RISC处理器软核,具有运行速度快、占用资源少、可配置性强等优点,广泛应用于通信、军事、高端消费…

导言

  MicroBlaze是能够嵌入到FPGA中的RISC处理器软核,具有运转速度快、占用资源少、可装备性强等长处,广泛运用于通讯、军事、高端消费市场等范畴。Xilinx公司的MicroBlaze 32位软处理器核是支撑CoreConnect总线的规范外设调集。MicroBlaze处理器运转在150 MHz时钟下,合适规划针对网络、电信、数据通讯和消费市场的杂乱嵌入式体系

  AXI是ARM公司提出的AMBA3.0协议中最重要的部分,是一种面向高功用、高带宽、低推迟的片内总线。AXI 总线技能不光使片上体系面积更小功耗更低,一起还获得了愈加优异的功用。AXI 能到达这样的技能指标的一个首要原因,便是它的单向通道体系结构。单向通道体系结构使得片上的信息流只以单方向传输,减少了延时。AXI 技能满意超高功用和杂乱的片上体系规划的需求,因此AXI的与运用也越来越广泛[1]。跟着ARM公司与Xilinx公司的协作逐渐加强,Xilinx开端逐渐在FPGA产品中大力推行AXI总线技能。AXI在Xilinx公司的MicroBalze等CPU上面得到越来越重要的支撑,必将成为未来的干流技能。

1 IP核的创立与导入
  Xilinx的MicroBlaze软核为用户供给了很多的可用IP核,便利用户开发缩短开发周期,降低成本。可是用户的需求千差万别,官网供给的IP核不可能满意所有人的需求。因此开发环境支撑用户自界说IP核,依据用户的不同需求,用户能够通过定制的方法开发自己需求的IP核。在测控设备的研制过程中,笔者发现插件上规划的RTC时钟芯片,尽管具有掉电坚持时刻的功用。可是在完结设备界面对时等功用时,对RTC芯片的读写操作显现到界面上后,会有必定的延时,界面无法准确的显现当时的时刻。因此规划一个通过自定制IP核的方式,完结实时时钟时钟的功用处理上述问题。开发环境中的Xilinx Platform Studio为IP核的定值与导入供给了导游。

  创立IP核的过程如下:挑选Hardware→Create or Import Peripheral Wizward来翻开创立和引进外设导游。单击Next按钮。挑选Create templates for a new peripheral。默许状况下新的外设将被存在pcores文件夹中便利查找。然后再次单击Next按钮。在Create PeripheralName and Version对话框中,输入定制的IP核的姓名,这儿输入本次定制IP核称号为soft_rtc。下面是版别操控,能够依据需求修正。界面如图1所示。

单击Next按钮,在Create PeripheralBus Interface 对话框中,挑选AXI4,这是新的外设即将衔接的总线。关于简略规划能够挑选AXI4_Lite;下一步在IPIF (IP 接口) 装备,这儿装备接口的一些特点,如是否是AXI 主/从设备等。所定制的IP是一个从设备,因此不需求运用主设备接口。数据宽度挑选默许的32位,下一步挑选需number of use memory ranges数量,这儿选1。界面如图2所示。

接下来便是IP%&&&&&%(IP 互联),也便是IP的接口信号。接下来需求运用需求运用BFM总线功用模型对外设进行仿真,本例不要运用。最终,需求挑选HDL类型、ISE工程支撑和软件驱动模板。此处运用Verilog模板,挑选后需IP接口仍然是VHDL编写,仅仅用户逻辑改用Verilog。假如不需求运用软件驱动模板,能够不选。最终给出了外设的信息summary。完结上述过程后,自定制的soft_rtc IP核的模版创立完结,只需依据需求对user_logic文件索要完结的功用编写运用代码,并装备相应的引脚。

  完结user_logic的代码编写后,需求将完结的IP核导入工程。大致过程如下:再次运用Hardware Create or Import Peripheral, 并单击Next按钮。挑选Import existing peripheral项,单击Next按钮再次输入称号soft_rtc,单击Next按钮,挑选Yes按钮。下一步选中第一项HDL source files单击Next按钮,然后下一过程选中第二项Use existing Peripheral Analysis Order files(*pao), Browse到相应的目录下,选中.pao文件,单击翻开,然后单击Next按钮;呈现图3所示的窗口时,选中左边AXI4Lite选项,然后单击Next按钮后边都挑选默许选项直到呈现完毕窗口时挑选完毕按钮Finish按钮。 这样通过上述过程完结了IP核的创立与导入。最终将IP核加入到工程中与AXI4Lite总线衔接。完结IP核模版的创立与导入后,下一步就要进行完结IP核user_logic文件的代码规划。

2 soft_rtc IP核的规划
  soft_rtc IP核中首要分为与上层接口的寄存器办理模块、为IP核供给准确时钟的 Clock分频模块和RTC的中心逻辑模块[2]。IP核接口如图4所示。

开发板上供给有25 MHz的晶振和16.384 MHz的晶振。为了计时的精度,将16.384 MHz的输入信号引进soft_rtc模块。Clock 分频模块将输入的16.384 MHz准晶振时钟4分频得到4.096 MHz的时钟信号。分频中心代码如下:
always @(posedge clk_in)
begin
if(clk_div == 4b0011)
clk_div <= 4b0110;
else if(clk_div == 4b0110)
clk_div <= 4b1100;
else if(clk_div == 4b1100)
clk_div <= 4b1001;
else
clk_div <= 4b0011;
end

  寄存器操控模块的首要功用是完结对RTC 模块内部各个寄存器的读写操控并为整个IP 模块供给操控信号。供给上层运用代码与IP核代码之间的接口。在这个模块内部包括对每个内部功用寄存器的读写进行操控的子模块和对各个子模块时钟的整体散布操控[3]。本规划中总共界说了16个寄存器,首要有操控寄存器、状况寄存器以及毫秒的读寄存器、毫秒的写寄存器;秒的读寄存器、秒位写寄存器、分位的读寄存器、分位的写寄存器、小时位的读寄存器、小时位的写寄存器、以及年月日的读与写寄存器等。

  设置RTC中心代码如下:
always @(posedge Bus2IP_Clk)
begin
if(Bus2IP_CS[0] && Bus2IP_WrCE[0] && (Bus2IP_Addr[9:2] == SETSECOND_Addr))
SetSecondRegister <= Bus2IP_Data[5:0];
……
end
  读RTC中心代码如下:
assign IP2Bus_Data[15:0] = (Bus2IP_CS[0] && Bus2IP_RdCE[0] && (Bus2IP_Addr[9:2] == MSECOND_Addr))?{6h00,GetMsecondRegister}:16hzzzz;
……

  RTC的中心逻辑模块首要完结的功用便是准确计时。IP核中通过计数器的操控,毫秒逢1000进位,秒、分和小时逢60进位,月逢12进位。规划时要全面考虑实际状况,留意对闰年以及不同月份天数不一样等状况的处理。RTC计时的中心代码如下:
always @(posedge SETTIME or posedge clk_jg)
begin
if(SETTIME)
SecondRegister <= SetSecondRegister;
else if((SecondRegister_B < 59) && Msecond_Carry)
SecondRegister <= SecondRegister + 1;
else if(Msecond_Carry)
SecondRegister <= 6h00;
else
SecondRegister <= SecondRegister;
end
……
  当时钟上升沿到来或许运用程序宣布设置时刻指令后,进行判别:秒位假如小于59而且毫秒位有进位,此刻秒位计数器加1;假如秒位计数器大于或等于59时毫秒位有进位则将秒位清零。其他状况秒位计数器坚持本来数值。 其他的分、小时、日月年等计数顺次类推。

结语
  soft_rtc IP核运用时,首先读设备中的硬件RTC芯片时刻,获取当时时刻后随后写入规划的soft_rtc IP核,这样是soft_rtc时刻与硬件RTC时刻坚持同步。后边设备运转过程中无论是维护事情上传,仍是录波事情上传等涉及到时刻的读写操作都由soft_rtc IP核完结。避免了对硬件RTC芯片的重复操作,进步的稳定性,节省了体系资源。规划完结后通过串口打印,或许通过通讯帧将时刻信息上传到设备界面显现等多方面验证,通过长时刻运转,时刻准确牢靠。此soft_rtc IP核便利移植能够推行到后续的产品中。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/chanpin/236030.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部