FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits

BeMicro SDK MDDR controller

Honored Contributor II

Arrow Europe offers a controller for the mobile low power SDRAM on the BeMicro SDK kit exclusively: www[/U][/U] arroweurope com/markets-solutions/solutions/bemicro/bemicro-sdk html.  


However, I can find no information related to its use and the pdf that comes with it is vague. The download consists of verilog and an SDC timing file, the latter of which I am very unfamiliar with. I am sure that the timing constraints are incorrect, as I get the following error while trying to download software to the board.  


Downloaded 20 KB in 0.3s (66.6KB/s) 

Verifying 04000000 ( 0%) 

Verify failed between address 0x4000000 and 0x4003597 



The PDF has the follwing instructions for timing requirements: 


After the controller has been added to an SOPC system the system must be generated. Then, before compiling the FPGA, the SDC file containing the timing constraints has to be adjusted. First, add the SDC file to the list of SDC files to be processed. Then use an editor to modify the data in the first section of the SDC file according to your needs. Detailed information about that can be found in the comment lines of the SDC file. 


The first section of the SDC file is as follows: 


# set the name of the PLL that sources the controller clock 

set sysClock "nios2_bemicro_sopc_inst|the_pll|sd1|pll7" 

# set the hierarchical path to the memory controller 

set mddrInstanceHierName "nios2_bemicro_sopc_inst|the_mddr|mddr_ctrl" 

# timing values 

# set external clock cycle time 

set t(ext_clk) 20.0 

# address and control inputs timing requirements 


set t(IS) 1.1 

set t(IH) 1.1 

# DQ and DM timing requirement in relation ton DQS 

set t(DS) 0.58 

set t(DH) 0.58 

# max. and min. access window of DQ in relation to CK_N/CK_P for CAS latency of 2 

set t(ACmax) 6.5 

set t(ACmin) 2.0 

# max. and min. board delay 

set t(board,max) 1.0 

set t(board,min) 1.0 

# specifiy board delays 

set t(board,CK_N) 1.0 

set t(board,CK_P) 1.0 

set t(board,LDQS) 1.0 

set t(board,UDQS) 1.0 


I don't know how to interpret this and would appreciate some help. 

Thank you!
0 Kudos
1 Reply
Honored Contributor II

I'd like to second this question and add my own problems.  


The mddr controller creates more pins then is in the sdc file. In particular mddr(d0-12) has pins for both input and output, while the sdc has simply one place for them. The same applies for LQDS and UQDS. I haven't been able to figure out which one is meant to be an input and which one an output.
0 Kudos