cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Explorer
Explorer
989 Views
Registered: ‎12-08-2007

Cannot generate MCS file

Jump to solution

 

I have 32 bit system (Linux). so I installed Vivado 2014.4 (because I read that it is the latest version that supports 32 bit). 

I made a VHDL code for Half-adder.

I am trying to set up the necessary file .MCS to program a FLASH on my board.

The board is

KC705

 

the flash is: Linear BPI flash memory

I finished synthesis.

I generated the bitstream.

I can find the "Edit Device Properties" window and I choose "Configuration Modes" to be Master BPI-Up x16 and JTAG/Boundary Scan.

From my understanding I need to create an MCS file. I see in the tutorial here http://techmuse.in/creating-and-configuring-xilinx-fpga-with-mcs/ he gets to a window "Write Memory Configuration File" but I cannot find this item in ay of the Menus of Vivado.

Is this window started only after version 2014.4 of Vivado ?

Is there some other way to generate MCS file ? I follow the video https://www.youtube.com/watch?v=IIAZEXPlwtc. I try to do TCL command:

 

write_cfgmem -format mcs -interface bpix16 -size 128 -loadbit "up 0 main.bit" -file main.mcs

 

( I chose 128 because in UG810.pdf, it is specified that the Linear BPI flash is 128M).

But I get an error:

 

Vivado 12-4178: write_cfgmem -interface BPIX16 is not compatible with the main.bit configuration device settings. SPI_buswidth=1. Regenerate the bitstream with the device settings for BPI...

 

 When I open "Edit Device Properties" I see SPI Configuration is "NO", "NONE" and "NO". So I don't understand why it says "SPI_buswidth=1" ?

 

Please advise how I can create the MCS file ?

 

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Explorer
Explorer
900 Views
Registered: ‎12-08-2007

I thank you for your input.

 

 

There was some line in the XCD file with SPI (although not as the error message complained about).

I deleted this line from the XCD manually,

set_property PACKAGE_PIN AA12 [get_ports GPIO_SW_N]

set_property IOSTANDARD LVCMOS15 [get_ports GPIO_SW_N]

set_property PACKAGE_PIN AB12 [get_ports GPIO_SW_S]

set_property IOSTANDARD LVCMOS15 [get_ports GPIO_SW_S]

set_property PACKAGE_PIN AA8 [get_ports GPIO_LED_1_LS]

set_property IOSTANDARD LVCMOS15 [get_ports GPIO_LED_1_LS]

set_property PACKAGE_PIN AB8 [get_ports GPIO_LED_0_LS]

set_property IOSTANDARD LVCMOS15 [get_ports GPIO_LED_0_LS]

 

Then I run synthesis.

 

(Note, I saw a couple of videos that From the Tools Menu, choose Edit Device Properties handset the configuration modes to Master BPI-Up x 16, but I now I proceed without touching any of these settings).

 

I run Implementation.

 

I run Generate Bitstream.

 

This creates the file main.bit (in the folder HA_2/HA_2.runs/impl_1).

 

I go down to the TCL Console and type the command:

 

write_cfgmem -format mcs -interface bpix16 -size 128 -loadbit “up 0 main.bit” -file main.mcs -force

This creates an MCS file.

 

I choose: Hardware Manager in the Program and Debug menu (left).

 

I choose Open target, and select localhost:3121….Digilent… (this is the KC705 card).

 

I click on xilinx tcf/Digilent ….

 

I choose from the Tools menu (top) Add Configuration Memory Device

 

and select xc7k325t_0

 

I the list of devices I choose: 28f00ap-30t-bpi-x16 because the UG810.pdf specifies the Linear flash device as such.

 

I press OK,

 

then it asks do you want to program the configuration memory device?

 

I choose OK.

 

I choose Configuration file to be the main.MCS (it is also in the impl_1 folder)

 

I make sure ERASE is checked.

 

The device gets programmed.

 

End of MCS problem.

 

 

View solution in original post

0 Kudos
4 Replies
Highlighted
950 Views
Registered: ‎01-22-2015

@dag1

The write_cfgmem command looks correct. You may want to add “-force” to the command to ensure it overwrites an existing version of main.mcs (see UG835 for more on write_cfgmem).

Error (12-4178) suggests that “Bitstream Settings” in the “Edit Device Properties” dialog need to be changed.  In particular, look under “Configuration Modes” and ensure you have selected “Master BPI-Up x16” and not “Master SPI x1”. See v2014.4 of UG908 near Figure 2-2 for more information on "Bitstream Settings" and on "Creating a Configuration Memory File".
Edit_Device_Props.jpg

Cheers,
Mark

Highlighted
Xilinx Employee
Xilinx Employee
946 Views
Registered: ‎08-10-2008

It seems the tool is messed up. Did you set any configuration related properties in XDC file? If so, move them. 

Secondly, open the implemented design, run 'report_property -all' and check if you have improperly set some Config properties such as SPIx1 width. Clear them all and then use write_cfgmem to create the MCS file.

------------------------------------------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
---------------------------------------------------------------------------------------------------------
Highlighted
Explorer
Explorer
907 Views
Registered: ‎12-08-2007

report_property -all 

 

returns an error

 

"expects exactly one object got '0'

 

But I solved the MCS writing problem just inserting the -force option as mentioned by one of the other persons who replied.  Thanks for your input.

0 Kudos
Highlighted
Explorer
Explorer
901 Views
Registered: ‎12-08-2007

I thank you for your input.

 

 

There was some line in the XCD file with SPI (although not as the error message complained about).

I deleted this line from the XCD manually,

set_property PACKAGE_PIN AA12 [get_ports GPIO_SW_N]

set_property IOSTANDARD LVCMOS15 [get_ports GPIO_SW_N]

set_property PACKAGE_PIN AB12 [get_ports GPIO_SW_S]

set_property IOSTANDARD LVCMOS15 [get_ports GPIO_SW_S]

set_property PACKAGE_PIN AA8 [get_ports GPIO_LED_1_LS]

set_property IOSTANDARD LVCMOS15 [get_ports GPIO_LED_1_LS]

set_property PACKAGE_PIN AB8 [get_ports GPIO_LED_0_LS]

set_property IOSTANDARD LVCMOS15 [get_ports GPIO_LED_0_LS]

 

Then I run synthesis.

 

(Note, I saw a couple of videos that From the Tools Menu, choose Edit Device Properties handset the configuration modes to Master BPI-Up x 16, but I now I proceed without touching any of these settings).

 

I run Implementation.

 

I run Generate Bitstream.

 

This creates the file main.bit (in the folder HA_2/HA_2.runs/impl_1).

 

I go down to the TCL Console and type the command:

 

write_cfgmem -format mcs -interface bpix16 -size 128 -loadbit “up 0 main.bit” -file main.mcs -force

This creates an MCS file.

 

I choose: Hardware Manager in the Program and Debug menu (left).

 

I choose Open target, and select localhost:3121….Digilent… (this is the KC705 card).

 

I click on xilinx tcf/Digilent ….

 

I choose from the Tools menu (top) Add Configuration Memory Device

 

and select xc7k325t_0

 

I the list of devices I choose: 28f00ap-30t-bpi-x16 because the UG810.pdf specifies the Linear flash device as such.

 

I press OK,

 

then it asks do you want to program the configuration memory device?

 

I choose OK.

 

I choose Configuration file to be the main.MCS (it is also in the impl_1 folder)

 

I make sure ERASE is checked.

 

The device gets programmed.

 

End of MCS problem.

 

 

View solution in original post

0 Kudos