ASIC/FPGA Design and Verification Out Source Services
The following describe the synthesis of the SD slave improved code.
- The following page discusses the synthesis of the
SD slave project.
-
Since the code uses some memories from xilinx, I decided on xilinx ise web-pack.
First was the installation from xilinx web site. Although the file is 6G byte, the download was quick.
Second is the installation on a debian machine, which went smoothly too.
-
The XST script structure has to be changed from what I used before in this project.
- I created a project file, test.prj, to load the VHDL files:
vhdl work ../sd_slv_CSD_constants.vhd
vhdl work ../sd_slv_ID_constants.vhd
vhdl work ../sd_fls_fif.vhd
vhdl work ../sd_fls_fiw.vhd
vhdl work ../sd_fls_fsm.vhd
vhdl work ../sd_fls_ram.vhd
vhdl work ../sd_slv_Rmx.vhd
vhdl work ../sd_slv_adg.vhd
vhdl work ../sd_slv_c16.vhd
vhdl work ../sd_slv_cmr.vhd
vhdl work ../sd_slv_cr7.vhd
vhdl work ../sd_slv_fsm.vhd
vhdl work ../sd_slv_mem.vhd
vhdl work ../sd_slv_reg.vhd
vhdl work ../sd_slv_rs1.vhd
vhdl work ../sd_slv_rsp.vhd
vhdl work ../sd_slv_wrt.vhd
vhdl work ../sd_slv_top.vhd
-
Next was the XST script. While the old one, the options were given in separate lines, for this version all options are given in a single line.
run -ifn test.prj -ifmt VHDL -top sd_slv_top -ofn sd_slv_top.ngc -ofmt NGC -p xc4vlx25ff668-10 -opt_mode Speed -opt_level 1
-
Last I had a minor issue with XST invocation:
/opt/Xilinx/14.1/ISE_DS/ISE/bin/lin64/xst -ifn nsynt.xst
-
To review the text report of the synthesis, I find vim as the best option.
There are some warnings, which are acceptable. I went over their casue
and meaning once and would like to ignore them in the future, without filtering out from the file.
I color these warning with vim highlight option. To fire the highlight the file need to be sourced manually or put into the ~/.gvimrc the following line:
au BufRead,BufNewFile nsynt.srp so highlight.vim
The highlight file is shown below:
syntax match warn_1 /:.*is never used/
hi warn_1 guibg=orange guifg=beige
syntax match warn_2 /:.*but never used/
hi warn_2 guibg=orange guifg=beige
syntax match warn_3 /:.*is unconnected in block/
hi warn_3 guibg=orange guifg=beige
syntax match warn_4 /:.*will be trimmed during the optimization/
hi warn_4 guibg=orange guifg=beige
syntax match tim_1 /Timing constraint/
hi tim_1 guibg=green guifg=beige
One can define his own green color by just typing:
guibg=green <--> guibg=#339933
|