Hi all
i have a series of questions regarding the XST capabilities (read: incapabilities).
It all started when i had completed this nice multi-port register file code that used MxN BRAMs for an M-read-port, N-write-port register file. I have designed it based on a publication by Mazen Saghir: "A Configurable Multi-Ported Register File Architecture for Soft Processor Cores".
The behavior of the design (did two versions: one with the VHDL code generated by an ANSI C 300-line program and one using generates using certain preprocessing for enabling the proper output multiplexers) is inferred properly by both XST 7.1 (patch 4) and 9.2 (unpatched) when i try to synthesize it as a top-level module. So this works.
The problems arise when it is included in a bigger design. XST is infamous (in off-the-record talk with my colleagues) pressumably for not using solid graph-based databases in its core (CDFGs?); but this is a macroscopic deduction. Xilinx people correct if i'm wrong and actually you donnot rely too much on "templates" but really perform decomposition to an intermediate representation form at elaboration time.
What is really strange is that some MxN cases work in the bigger design (my soft microprocessor) and some don't (no, i have not surpassed limitations in physical resources). Certain BRAMs are actually removed from the microprocessor design.
And here are the questions:
1) WHY does the synthesis for some combinations of read/write ports (it is fundamental parameter of my microprocessor) and some don't?2) is it possible to disable all optimizations (except maybe boolean optimizations) that lead to net eliminations? I'm looking for something close to the "-wysiwyg yes" and "-noreduce yes" options that are available to CPLDs. But i guess such option is not there.
3) is it possible to generate a technology-targeted netlist for synthesis and not for either functional (UNISIM) or timing simulation (SIMPRIMS) in either (preferrably) VHDL or Verilog? I would like to integrate a black-box module in my final design that is deep within the design hierarchy.I have posted some of the questions to the Xilinx forums, but no answers yet. Are the answering people all situated in the States (and are kind of sleeping at this moment)?
Hope for answers
Kind regards Nikolaos Kavvadias