go2deathward 发表于 2014-11-4 14:32:48

门外汉,咨询大家一个有关fpga的问题

        我们的目的是在fpga板子里嵌入M0,或者ARM7的内核,模拟出一个mcu。
      并且,这个mcu的内核在运行的时候,fpga还可以实现类似jtag一样的功能,可以跟踪,单步,断点等,观察控制下载在该内核中程序的,类似一个仿真器的功能。
        背景是,我们用的一款芯片,厂商的片子不能提供在线调试的功能。我们想基于fpga做一个,既包含该芯片的内核,又能够实时调试的功能。   
      如果用fpga来做,是否可行,需要什么级别的片子,是否有推荐型号,厂商。


        多谢大家!

aozima 发表于 2014-11-4 14:48:22

可以看看直接内嵌硬核的FPGA,国产的有CME-M7(Cortex-M3+FPGA)

RT-Thread对此有支持 http://www.rt-thread.org/phpBB3/topic3787.html

aozima 发表于 2014-11-4 14:50:12

要更高端的还有Zynq

go2deathward 发表于 2014-11-4 15:12:12

aozima 发表于 2014-11-4 14:50
要更高端的还有Zynq

谢谢aozima 的回复

   我还想问一下,通用的fpga能否实现我说的功能呢?

howmoney 发表于 2014-11-4 15:15:09

背景是,我们用的一款芯片,厂商的片子不能提供在线调试的功能。我们想基于fpga做一个,既包含该芯片的内核,又能够实时调试的功能。
——————————————————————————————————————————————
如果不指定内核,估计还有可能,网上有开源的RISC,MIPS核。如果是指定的内核,那只能找厂家要代码了,比如说我想用FPGA生成一个intel I3核。。。。

K.O.Carnivist 发表于 2014-11-4 15:19:19

实现个处理器倒是不需要多大的资源,Cortex-M0 DesignStart差不多是六千LUT,不过那个不带调试。
lz如果一定要做成ARM的话,他们指令集什么的应该是有专利不能随便商业用的吧。其他软核带调试的lz愿意用吗?

shiruchuan 发表于 2014-11-4 15:19:43

嵌入内核应该可以,之前嵌入过51的核,实时调试理论可行,自己写有点烦,不知道有没有公开的源码

go2deathward 发表于 2014-11-4 15:31:29

K.O.Carnivist 发表于 2014-11-4 15:19
实现个处理器倒是不需要多大的资源,Cortex-M0 DesignStart差不多是六千LUT,不过那个不带调试。
lz如果一 ...

特殊应用只能用这个内核

K.O.Carnivist 发表于 2014-11-4 15:41:01

go2deathward 发表于 2014-11-4 15:31
特殊应用只能用这个内核

那应该还是用带硬核的fpga比较方便吧。或者贵公司有钱直接找arm去买m0的fpga授权。

go2deathward 发表于 2014-11-4 15:43:11

K.O.Carnivist 发表于 2014-11-4 15:41
那应该还是用带硬核的fpga比较方便吧。或者贵公司有钱直接找arm去买m0的fpga授权。 ...

带硬核的fpga有推荐吗?M0的内核即可

dr2001 发表于 2014-11-4 15:49:03

处理器的调试功能需要额外的逻辑进行支持。单纯的一个没有调试功能的软核,自己开发调试功能,工作量可能比重新设计一个带调试功能的软核大得多。

So,如果非要这个功能,
# 去ARM买个可综合的软核吧。。。
# 代码在别的M0芯片上调试的差不多了再运过来。。。
# 上RTOS,利用简单的服务程序实现一些非常简单的调试功能也是可以的。

Nuker 发表于 2014-11-4 16:43:26

想要M0内核直接去找ARM买,他们就是卖这个的

yuyu87 发表于 2014-11-4 20:31:08

可以达到你所需要的要求,网上有51软核,M0软核,且有JTAG功能,

go2deathward 发表于 2014-11-4 21:07:00

yuyu87 发表于 2014-11-4 20:31
可以达到你所需要的要求,网上有51软核,M0软核,且有JTAG功能,

M0的也有吗?没有找到呢

Codoox 发表于 2014-11-4 21:26:15

go2deathward 发表于 2014-11-4 21:07
M0的也有吗?没有找到呢

ACTEL (现在是microsemi)有带M1、M3内核的FPGA ,国产京微雅阁也有带51、M3内核的

CMika 发表于 2014-11-4 22:26:16

记得有本书兼容ARM9的软核处理器设计:基于FPGA   可以参考下

go2deathward 发表于 2014-11-5 13:44:53

Codoox 发表于 2014-11-4 21:26
ACTEL (现在是microsemi)有带M1、M3内核的FPGA ,国产京微雅阁也有带51、M3内核的 ...

国产的这个片子,京微雅格的,用的人多吗?经得起考验不?

Codoox 发表于 2014-11-5 17:25:43

go2deathward 发表于 2014-11-5 13:44
国产的这个片子,京微雅格的,用的人多吗?经得起考验不?

目前好像都是给企业客户供货,没用过不好说。ACTEL的质量肯定没问题,但价格可能不会太便宜。

go2deathward 发表于 2014-11-5 18:01:05

ARM大学计划里,有M0的DesignStart Processor IP ,这个有谁下载过吗?

我注册申请了,需要2天才能有回应。。

谁如果有,我先拿来看看~~~~多谢了!

K.O.Carnivist 发表于 2014-11-6 10:45:23

go2deathward 发表于 2014-11-5 18:01
ARM大学计划里,有M0的DesignStart Processor IP ,这个有谁下载过吗?

我注册申请了,需要2天才能有回应 ...

那个没有debug的。接口是这样:
module CORTEXM0DS (
// CLOCK AND RESETS ------------------
inputwire      HCLK,            // Clock
inputwire      HRESETn,         // Asynchronous reset

// AHB-LITE MASTER PORT --------------
output wire HADDR,             // AHB transaction address
output wire [ 2:0] HBURST,            // AHB burst: tied to single
output wire      HMASTLOCK,         // AHB locked transfer (always zero)
output wire [ 3:0] HPROT,             // AHB protection: priv; data or inst
output wire [ 2:0] HSIZE,             // AHB size: byte, half-word or word
output wire [ 1:0] HTRANS,            // AHB transfer: non-sequential only
output wire HWDATA,            // AHB write-data
output wire      HWRITE,            // AHB write control
inputwire HRDATA,            // AHB read-data
inputwire      HREADY,            // AHB stall signal
inputwire      HRESP,             // AHB error response

// MISCELLANEOUS ---------------------
inputwire      NMI,               // Non-maskable interrupt input
inputwire IRQ,               // Interrupt request inputs
output wire      TXEV,            // Event output (SEV executed)
inputwire      RXEV,            // Event input
output wire      LOCKUP,            // Core is locked-up
output wire      SYSRESETREQ,       // System reset request

// POWER MANAGEMENT ------------------
output wire      SLEEPING         // Core and NVIC sleeping
);

里面代码是门级的,没有可读性。类似这样:
assign S8a2z4 = (~(Dmh2z4 & K1wvx4));
assign haddr_o = (!Jxovx4);
assign Jxovx4 = (Qea2z4 & Xea2z4);
assign Xea2z4 = (~(Ykh2z4 & Mrsvx4));
assign Qea2z4 = (Efa2z4 & Lfa2z4);
assign Lfa2z4 = (~(Gzvvx4 & Hxnvx4));
assign Hxnvx4 = (~(Sfa2z4 & Zfa2z4));
assign Zfa2z4 = (~(Wadvx4 & Jj9wx4));
assign Sfa2z4 = (Gga2z4 & Nga2z4);
assign Nga2z4 = (~(Vb9wx4 & Uga2z4));
assign Uga2z4 = (~(Bha2z4 & Iha2z4));
assign Iha2z4 = (Pha2z4 & Wha2z4);

7802848 发表于 2014-11-6 10:58:51

可以做 但是前提是fpga不一定能跑到MCU的速度
而且用fpga的成本,不仅仅是指材料成本,设计成本远远高于MCU。如果你需要license IP的话,那成本更是离谱

go2deathward 发表于 2014-11-9 23:44:22

多谢诸位的热心回复!!
页: [1]
查看完整版本: 门外汉,咨询大家一个有关fpga的问题