试用手记:为国产FPGA正名(五,外扩SFR使用)
时间:05-25
来源:互联网
点击:
测试2:SFR性能测试
与《国产FPGA试用手记二(51硬核性能测试)》做了类似的测试,验证LED寄存器拉高拉低的速度,和之前的结果一样。也就是说,核外的SFR在不使用等待功能的情况下与核内SFR的操作速度是一样的。
测试3:SFR等待功能验证
在50MHz的clkcpu下,没有等待时(即assign sfrack = 1'b1;),不断的对核外SFR写使能情况可以得到如图2所示的使能信号波形。两次上升沿之间240ns即一个指令周期(12个50MHz时钟周期),而读使能信号有效高脉冲为160ns,即8个时钟周期。
图2
Datasheet中标明的sfrack信号其实无法直接从例化的51硬核中找到接口,于是特权同学干脆直接生成的IP核例化文件中把它手动引出来了,在自定义逻辑中对这个信号做了一些测试,也发现了该信号的使用方法。
代码如下:
reg[7:0] sfcnt; //延时等待计数器,以50MHz为时钟单位计数
wire sfrack; //SFR 读写等待信号
always @(posedge clk_50m or negedge rst_n) begin
if(!rst_n) sfcnt <= 8'd0;
else if(sfrwe) sfcnt <= sfcnt+1'b1;
else sfcnt <= 8'd0;
end
assign sfrack = (sfcnt == 0) | (sfcnt > 8'd23);
//等待n个指令周期,则sftcnt要大于(n*12-1)
该代码实现在sfrwe即SFR寄存器写选通信号到来后,用计数器sfcnt进行计数,然后相应的对需要延时等待的8051指令周期数通过控制sfrack为低电平实现。
分别设置了sfcnt>8’d16、sfcnt>8’d24、sfcnt>8’d23得到sfrwe的波形如图3、图4、图5所示。
图3
图4
图5
由此可见,这里延时等待的时间必须刚好是指令周期。即系统指令周期为20ns*12=240ns,那么我们外部计数周期也是20ns的情况下,一般取等待时钟数为12的倍数即可。否则就会出现图3和图4的“毛刺”,其中原因特权同学不好妄下定论,恐怕和器件本身的内部处理机制有关。
与《国产FPGA试用手记二(51硬核性能测试)》做了类似的测试,验证LED寄存器拉高拉低的速度,和之前的结果一样。也就是说,核外的SFR在不使用等待功能的情况下与核内SFR的操作速度是一样的。
测试3:SFR等待功能验证
在50MHz的clkcpu下,没有等待时(即assign sfrack = 1'b1;),不断的对核外SFR写使能情况可以得到如图2所示的使能信号波形。两次上升沿之间240ns即一个指令周期(12个50MHz时钟周期),而读使能信号有效高脉冲为160ns,即8个时钟周期。
图2
Datasheet中标明的sfrack信号其实无法直接从例化的51硬核中找到接口,于是特权同学干脆直接生成的IP核例化文件中把它手动引出来了,在自定义逻辑中对这个信号做了一些测试,也发现了该信号的使用方法。
代码如下:
reg[7:0] sfcnt; //延时等待计数器,以50MHz为时钟单位计数
wire sfrack; //SFR 读写等待信号
always @(posedge clk_50m or negedge rst_n) begin
if(!rst_n) sfcnt <= 8'd0;
else if(sfrwe) sfcnt <= sfcnt+1'b1;
else sfcnt <= 8'd0;
end
assign sfrack = (sfcnt == 0) | (sfcnt > 8'd23);
//等待n个指令周期,则sftcnt要大于(n*12-1)
该代码实现在sfrwe即SFR寄存器写选通信号到来后,用计数器sfcnt进行计数,然后相应的对需要延时等待的8051指令周期数通过控制sfrack为低电平实现。
分别设置了sfcnt>8’d16、sfcnt>8’d24、sfcnt>8’d23得到sfrwe的波形如图3、图4、图5所示。
图3
图4
图5
由此可见,这里延时等待的时间必须刚好是指令周期。即系统指令周期为20ns*12=240ns,那么我们外部计数周期也是20ns的情况下,一般取等待时钟数为12的倍数即可。否则就会出现图3和图4的“毛刺”,其中原因特权同学不好妄下定论,恐怕和器件本身的内部处理机制有关。
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- 采用EEPROM对大容量FPGA芯片数据实现串行加载(03-18)
- 赛灵思:可编程逻辑不仅已是大势所趋,而且势不可挡(07-24)