Re: Asynchronous double port RAM

Nicolas Pinault <[email protected]> Mon, 11 Jan 2016 17:10:58 +0100
Newsgroups gmane.comp.python.myhdl
Message-ID <[email protected]>
Le 11/01/2016 14:45, Nicolas Pinault a écrit :
> Le 11/01/2016 14:26, Josy Boelen a écrit :
>> Hi Nicolas,
>>
>> I slightly modified your code to have Quartus Prime infer a RAM :)
>>
>>      @myhdl.always(clka.posedge)
>>      def portA():
>>          doa.next = ram[addra]
>>          if ena :
>>              if wea :
>>                  ram[addra].next = dia
>>
>>      @myhdl.always(clkb.posedge)
>>      def portB():
>>          dob.next = ram[addrb]
>>          if enb :
>>              if web :
>>                  ram[addrb].next = dib
>> as Quartus needs a register on the output path I moved the read-
>> statement before the enable.
>>
>> Apparently Quartus Prime has no problem with *ram* being a *signal*
>> rather than a *shared variable*. Although in  the "Recommended HDL
>> Coding Styles" they also show the example with a *shared variable*.
>>
>> I have no idea whether Vivado and ISE are also forgiving.
> The code I sent in my first message has been formatted following 
> Xilinx rules.
> However, I did not tried to compile it with Xilinx tools. I'll have a 
> try and tell you.
Good new.
I tested with Xilinx Tools : ISE and Vivado, synthesiser/compiler and 
simulator. All configurations worked.

Regards,
Nicolas

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140

_______________________________________________
myhdl-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/myhdl-list