myhdl-list Mailing List for MyHDL (Page 14)
Brought to you by:
jandecaluwe
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(14) |
Nov
(4) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(1) |
Feb
(10) |
Mar
(19) |
Apr
(14) |
May
(1) |
Jun
(4) |
Jul
(10) |
Aug
|
Sep
(2) |
Oct
(7) |
Nov
(17) |
Dec
(12) |
2005 |
Jan
(6) |
Feb
(10) |
Mar
(17) |
Apr
(10) |
May
(9) |
Jun
(5) |
Jul
(26) |
Aug
(34) |
Sep
(10) |
Oct
(38) |
Nov
(71) |
Dec
(74) |
2006 |
Jan
(20) |
Feb
(20) |
Mar
(7) |
Apr
(2) |
May
(13) |
Jun
|
Jul
|
Aug
(4) |
Sep
(37) |
Oct
(43) |
Nov
(30) |
Dec
(33) |
2007 |
Jan
(3) |
Feb
|
Mar
|
Apr
|
May
(30) |
Jun
(9) |
Jul
(1) |
Aug
|
Sep
(8) |
Oct
(13) |
Nov
|
Dec
(4) |
2008 |
Jan
(13) |
Feb
(46) |
Mar
(25) |
Apr
(7) |
May
(20) |
Jun
(73) |
Jul
(38) |
Aug
(47) |
Sep
(24) |
Oct
(18) |
Nov
(9) |
Dec
(36) |
2009 |
Jan
(31) |
Feb
(24) |
Mar
(73) |
Apr
(13) |
May
(47) |
Jun
(28) |
Jul
(36) |
Aug
(2) |
Sep
(5) |
Oct
(8) |
Nov
(16) |
Dec
(29) |
2010 |
Jan
(34) |
Feb
(18) |
Mar
(18) |
Apr
(5) |
May
|
Jun
(24) |
Jul
(53) |
Aug
(3) |
Sep
(18) |
Oct
(33) |
Nov
(19) |
Dec
(15) |
2011 |
Jan
(9) |
Feb
(4) |
Mar
(39) |
Apr
(213) |
May
(86) |
Jun
(46) |
Jul
(22) |
Aug
(11) |
Sep
(78) |
Oct
(59) |
Nov
(38) |
Dec
(24) |
2012 |
Jan
(9) |
Feb
(22) |
Mar
(89) |
Apr
(55) |
May
(222) |
Jun
(86) |
Jul
(57) |
Aug
(32) |
Sep
(49) |
Oct
(69) |
Nov
(12) |
Dec
(35) |
2013 |
Jan
(67) |
Feb
(39) |
Mar
(18) |
Apr
(42) |
May
(79) |
Jun
(1) |
Jul
(19) |
Aug
(18) |
Sep
(54) |
Oct
(79) |
Nov
(9) |
Dec
(26) |
2014 |
Jan
(30) |
Feb
(44) |
Mar
(26) |
Apr
(11) |
May
(39) |
Jun
(1) |
Jul
(89) |
Aug
(15) |
Sep
(7) |
Oct
(6) |
Nov
(20) |
Dec
(27) |
2015 |
Jan
(107) |
Feb
(106) |
Mar
(130) |
Apr
(90) |
May
(147) |
Jun
(28) |
Jul
(53) |
Aug
(16) |
Sep
(23) |
Oct
(7) |
Nov
|
Dec
(16) |
2016 |
Jan
(86) |
Feb
(41) |
Mar
(38) |
Apr
(31) |
May
(37) |
Jun
(11) |
Jul
(1) |
Aug
(1) |
Sep
(3) |
Oct
(1) |
Nov
(5) |
Dec
(3) |
2017 |
Jan
|
Feb
(4) |
Mar
(2) |
Apr
(2) |
May
|
Jun
(3) |
Jul
(2) |
Aug
(2) |
Sep
(1) |
Oct
(2) |
Nov
(1) |
Dec
(1) |
2018 |
Jan
(1) |
Feb
(1) |
Mar
(7) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
(1) |
Feb
|
Mar
(2) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
(3) |
Dec
|
2020 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
|
Nov
|
Dec
(3) |
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
(12) |
Dec
(11) |
2022 |
Jan
(7) |
Feb
(2) |
Mar
(1) |
Apr
|
May
|
Jun
(1) |
Jul
(3) |
Aug
(2) |
Sep
(1) |
Oct
|
Nov
|
Dec
(1) |
2023 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
2024 |
Jan
(1) |
Feb
(2) |
Mar
(4) |
Apr
(2) |
May
(2) |
Jun
(1) |
Jul
|
Aug
(1) |
Sep
(1) |
Oct
|
Nov
|
Dec
(2) |
2025 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Jock T. <tan...@gm...> - 2016-01-15 03:37:24
|
Chris, thank you for your swift reply! Speaking of boolean logic in Python, all() and any() seemed so well-placed and pythonic to me, I just could not imagine they are not supported. Thanks for the insight, I’ll continue struggling. 2016-01-15 13:04 GMT+10:00 Christopher Felton <chr...@gm...>: > The code that is convertible is limited, not all Python > constructs are supported. > > Your line of code (line 89): > > im_cl[i].next = im_gl[i] | any([(im_gl[j-1] if j > 0 else i_c) & > all(im_pl[j:i+1]) for j in range(i+1)]) > > Will need to be implemented with loops and basic conditional. > I am fairly sure "any" and "all" are not convertible. > > Refer to the manual to see what constructs are convertible: > > http://docs.myhdl.org/en/stable/manual/conversion.html#the-convertible-subset > > Regards, > Chris > > On 1/14/16 8:56 PM, Jock Tanner wrote: > >> Hello! >> >> I’m a Python web developer and a bit of radio hobbyist, and as such >> I’ve been playing with MyHDL for a couple of weeks. I’d like to >> apologize in advance if I have got some basics completely wrong from the >> start, because that’s pretty possible. But I’d like to get a bit of >> a clarification, or even better, an advice, concerning an error I >> recently stuck with. >> >> I’m trying to implement a carry-lookahead adder from >> http://www.ece.lsu.edu/ee3755/2013f/cla.pdf, and that’s how I wrote a >> carry generator part (from page 5): >> >> >> https://bitbucket.org/jock-tanner/asceticore/src/e0dce2f822639b66a024fe2f53ef2bcc98e8d2f2/components/adder.py?at=master&fileviewer=file-view-default#adder.py-64:92 >> >> The code simulates fine, but when I try to convert it to Verilog, the >> error comes up: >> >> “myhdl.ConversionError: in file >> >> /home/tanner/workspace/pr043-asceticore/project/asceticore/components/adder.py, >> line 89: >> >> Unsupported list comprehension form: should be [intbv()[n:] for i in >> range(m)]†>> Since I wish to put this design into an FPGA (I haven’t got the board >> yet, but definitely will), I consider the conversion part important. But >> right now I’m clueless of what I have done wrong conversion-wise. >> I’ve read the manual >> (http://docs.myhdl.org/en/stable/manual/conversion.html), but it >> didn’t get me any further. >> >> Any ideas about how I should rework my code? Sorry again for bothering >> you with such small and (hopefully) trivial matters. >> >> JT >> >> >> >> >> ------------------------------------------------------------------------------ >> 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 >> myh...@li... >> https://lists.sourceforge.net/lists/listinfo/myhdl-list >> >> > > > > > ------------------------------------------------------------------------------ > 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 > myh...@li... > https://lists.sourceforge.net/lists/listinfo/myhdl-list > > |
From: Christopher F. <chr...@gm...> - 2016-01-15 03:04:36
|
The code that is convertible is limited, not all Python constructs are supported. Your line of code (line 89): im_cl[i].next = im_gl[i] | any([(im_gl[j-1] if j > 0 else i_c) & all(im_pl[j:i+1]) for j in range(i+1)]) Will need to be implemented with loops and basic conditional. I am fairly sure "any" and "all" are not convertible. Refer to the manual to see what constructs are convertible: http://docs.myhdl.org/en/stable/manual/conversion.html#the-convertible-subset Regards, Chris On 1/14/16 8:56 PM, Jock Tanner wrote: > Hello! > > I’m a Python web developer and a bit of radio hobbyist, and as such > I’ve been playing with MyHDL for a couple of weeks. I’d like to > apologize in advance if I have got some basics completely wrong from the > start, because that’s pretty possible. But I’d like to get a bit of > a clarification, or even better, an advice, concerning an error I > recently stuck with. > > I’m trying to implement a carry-lookahead adder from > http://www.ece.lsu.edu/ee3755/2013f/cla.pdf, and that’s how I wrote a > carry generator part (from page 5): > > https://bitbucket.org/jock-tanner/asceticore/src/e0dce2f822639b66a024fe2f53ef2bcc98e8d2f2/components/adder.py?at=master&fileviewer=file-view-default#adder.py-64:92 > > The code simulates fine, but when I try to convert it to Verilog, the > error comes up: > > “myhdl.ConversionError: in file > /home/tanner/workspace/pr043-asceticore/project/asceticore/components/adder.py, > line 89: > > Unsupported list comprehension form: should be [intbv()[n:] for i in > range(m)]†> > Since I wish to put this design into an FPGA (I haven’t got the board > yet, but definitely will), I consider the conversion part important. But > right now I’m clueless of what I have done wrong conversion-wise. > I’ve read the manual > (http://docs.myhdl.org/en/stable/manual/conversion.html), but it > didn’t get me any further. > > Any ideas about how I should rework my code? Sorry again for bothering > you with such small and (hopefully) trivial matters. > > JT > > > > ------------------------------------------------------------------------------ > 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 > myh...@li... > https://lists.sourceforge.net/lists/listinfo/myhdl-list > |
From: Christopher F. <chr...@gm...> - 2016-01-15 02:58:18
|
Edward, When assign intbv bit slices you need to: temp.next[1:0] = 0 Hope that helps, Chris On 1/14/16 8:26 PM, Edward Vidal wrote: > Hello All, > I found this VHDL code on the web. > library ieee; > use ieee.std_logic_1164.all; > > entity piso is > port( > clk,load : in std_logic; > pi : in std_logic_vector(35 downto 0); > so : out std_logic); > end piso; > > architecture arch of piso is > > signal t : std_logic; > signal temp: std_logic_vector(35 downto 0); > > begin > > process (clk,pi,load) > begin > if (load='1') then > temp(35 downto 0) <= pi(35 downto 0); > elsif (CLK'event and CLK='1') then > t <= temp(35); > temp(35 downto 1) <= temp(34 downto 0); > temp(0) <= '0'; > end if; > end process; > > so <= t; > > end arch; > I create a test bench in ise and it appears to be okay. > from myhdl import * > import argparse > W0 = 36 > pp0 = Signal(intbv(0)[W0:]) > ss0 = Signal(bool(0)) > clk = Signal(bool(0)) > ld = Signal(bool(0)) > def cliparse(): > parser = argparse.ArgumentParser() > parser.add_argument("--build", default=False, action='store_true') > parser.add_argument("--test", default=False, action='store_true') > parser.add_argument("--convert", default=False, action='store_true') > args = parser.parse_args() > return args > > def para2ser(clk, pp0, ss0, ld): > > t = Signal(bool(0)) > temp = Signal(intbv(0)[W0:]) > @always(clk.posedge) > def logic(): > > if (ld == 1): > temp[36:0].next = pp0[36:0] > else: > t.next = int(temp[36:35]) > > temp[36:1].next = temp[35:0] > temp[1:].next = int(0) > ss0.next = t > > return logic > > def tb(clk, pp0, ss0, ld): > instance_1 = para2ser(clk, pp0, ss0, ld) > > @always(delay(10)) > def clkgen(): > clk.next = not clk > @instance > def stimulus(): > > pp0.next = 34359738368 > yield clk.posedge > ld.next = 1 > yield clk.posedge > ld.next = 0 > yield clk.posedge > print ("%s %d") % (bin(pp0,36), ss0 ) > for i in range(36): > yield clk.posedge > print ("%d %s %d") % (i, bin(pp0,36), ss0 ) > raise StopSimulation > > return instances() > def convert(args): > toVHDL(para2ser,clk, pp0, ss0, ld) > toVerilog(para2ser,clk, pp0, ss0, ld) > > > def main(): > args = cliparse() > if args.test: > tb_fsm = traceSignals(tb,clk, pp0, ss0, ld) > sim = Simulation(tb_fsm) > sim.run() > if args.convert: > convert(args) > > if __name__ == '__main__': > main() > Can someone tell me what I am doing wrong? > I think it this line > temp[1:].next = int(0) > I have tried without the int and I get the same results when I run > python para2ser.py --test > Thanks > Regards, > Edward Vidal Jr. e-mail dev...@sb... 915-595-1613 > > > ------------------------------------------------------------------------------ > 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 > myh...@li... > https://lists.sourceforge.net/lists/listinfo/myhdl-list > |
From: Jock T. <tan...@gm...> - 2016-01-15 02:56:27
|
Hello! I’m a Python web developer and a bit of radio hobbyist, and as such I’ve been playing with MyHDL for a couple of weeks. I’d like to apologize in advance if I have got some basics completely wrong from the start, because that’s pretty possible. But I’d like to get a bit of a clarification, or even better, an advice, concerning an error I recently stuck with. I’m trying to implement a carry-lookahead adder from http://www.ece.lsu.edu/ee3755/2013f/cla.pdf, and that’s how I wrote a carry generator part (from page 5): https://bitbucket.org/jock-tanner/asceticore/src/e0dce2f822639b66a024fe2f53ef2bcc98e8d2f2/components/adder.py?at=master&fileviewer=file-view-default#adder.py-64:92 The code simulates fine, but when I try to convert it to Verilog, the error comes up: “myhdl.ConversionError: in file /home/tanner/workspace/pr043-asceticore/project/asceticore/components/adder.py, line 89: Unsupported list comprehension form: should be [intbv()[n:] for i in range(m)]” Since I wish to put this design into an FPGA (I haven’t got the board yet, but definitely will), I consider the conversion part important. But right now I’m clueless of what I have done wrong conversion-wise. I’ve read the manual (http://docs.myhdl.org/en/stable/manual/conversion.html), but it didn’t get me any further. Any ideas about how I should rework my code? Sorry again for bothering you with such small and (hopefully) trivial matters. JT |
From: Edward V. <dev...@sb...> - 2016-01-15 02:27:48
|
Hello All,I found this VHDL code on the web.library ieee; use ieee.std_logic_1164.all; entity piso is port( clk,load : in std_logic; pi : in std_logic_vector(35 downto 0); so : out std_logic); end piso; architecture arch of piso is signal t : std_logic; signal temp: std_logic_vector(35 downto 0); begin process (clk,pi,load) begin if (load='1') then temp(35 downto 0) <= pi(35 downto 0); elsif (CLK'event and CLK='1') then t <= temp(35); temp(35 downto 1) <= temp(34 downto 0); temp(0) <= '0'; end if; end process; so <= t; end arch;I create a test bench in ise and it appears to be okay.from myhdl import * import argparse W0 = 36 pp0 = Signal(intbv(0)[W0:]) ss0 = Signal(bool(0)) clk = Signal(bool(0)) ld = Signal(bool(0)) def cliparse(): parser = argparse.ArgumentParser() parser.add_argument("--build", default=False, action='store_true') parser.add_argument("--test", default=False, action='store_true') parser.add_argument("--convert", default=False, action='store_true') args = parser.parse_args() return args def para2ser(clk, pp0, ss0, ld): t = Signal(bool(0)) temp = Signal(intbv(0)[W0:]) @always(clk.posedge) def logic(): if (ld == 1): temp[36:0].next = pp0[36:0] else: t.next = int(temp[36:35]) temp[36:1].next = temp[35:0] temp[1:].next = int(0) ss0.next = t return logic def tb(clk, pp0, ss0, ld): instance_1 = para2ser(clk, pp0, ss0, ld) @always(delay(10)) def clkgen(): clk.next = not clk @instance def stimulus(): pp0.next = 34359738368 yield clk.posedge ld.next = 1 yield clk.posedge ld.next = 0 yield clk.posedge print ("%s %d") % (bin(pp0,36), ss0 ) for i in range(36): yield clk.posedge print ("%d %s %d") % (i, bin(pp0,36), ss0 ) raise StopSimulation return instances() def convert(args): toVHDL(para2ser,clk, pp0, ss0, ld) toVerilog(para2ser,clk, pp0, ss0, ld) def main(): args = cliparse() if args.test: tb_fsm = traceSignals(tb,clk, pp0, ss0, ld) sim = Simulation(tb_fsm) sim.run() if args.convert: convert(args) if __name__ == '__main__': main() Can someone tell me what I am doing wrong? I think it this line temp[1:].next = int(0)I have tried without the int and I get the same results when I run python para2ser.py --test Thanks Regards, Edward Vidal Jr. e-mail dev...@sb... 915-595-1613 |
From: Jan D. <ja...@ja...> - 2016-01-14 14:52:36
|
http://amasad.me/2016/01/13/the-stoic-of-open-source/ -- Jan Decaluwe - Resources bvba - http://www.jandecaluwe.com Python as a HDL: http://www.myhdl.org VHDL development, the modern way: http://www.sigasi.com World-class digital design: http://www.easics.com |
From: Henry G. <he...@ca...> - 2016-01-12 19:19:05
|
On 12/01/16 14:45, Christopher Felton wrote: > On 1/11/2016 7:45 AM, Nicolas Pinault wrote: > >>> >> >>> >> 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. >>> >> >>> >> Your other request: initialising the ram-array is not that much work. >>> >> I'll try to submit a PR shortly. >> > That's good news :) > > You can refer to the issue #105 for some info: > https://github.com/jandecaluwe/myhdl/issues/105 > > There has been some work that might be useful (or not): > https://github.com/jandecaluwe/myhdl/pull/102 > > Henry's first pass (see PR comments), we should limit > the feature to just "initial value" changes. > https://github.com/hgomersall/myhdl/tree/initial_value_support > > I was assisting Henry some but I don't recall where I > (we) left off: > https://github.com/cfelton/myhdl/tree/initial_value_support It's working*, it just needs the tests to be written. I implemented and tested it against Vivado, which depended on an external library a wrote, which wasn't acceptable to Jan for inclusion. I've basically had other things that have been absorbing (literally) all my time for quite a while. I'm likely to get back to some FPGA work soonish though. I think that PR suggests the suitable test scenario if you fancy a bash. Cheers, Henry *it _was_ working - I haven't checked it against a recent master. |
From: Nicolas P. <ni...@aa...> - 2016-01-12 18:26:00
|
Le 12/01/2016 15:45, Christopher Felton a écrit : > On 1/11/2016 7:45 AM, Nicolas Pinault wrote: > >>> 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. >>> Your other request: initialising the ram-array is not that much work. >>> I'll try to submit a PR shortly. >> That's good news :) > > You can refer to the issue #105 for some info: > https://github.com/jandecaluwe/myhdl/issues/105 > > There has been some work that might be useful (or not): > https://github.com/jandecaluwe/myhdl/pull/102 > > Henry's first pass (see PR comments), we should limit > the feature to just "initial value" changes. > https://github.com/hgomersall/myhdl/tree/initial_value_support > > I was assisting Henry some but I don't recall where I > (we) left off: > https://github.com/cfelton/myhdl/tree/initial_value_support Thanks for clarifying. Regards, Nicolas > > Regards, > Chris > > > > ------------------------------------------------------------------------------ > 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 > myh...@li... > https://lists.sourceforge.net/lists/listinfo/myhdl-list > . > -- *Nicolas PINAULT R&D electronics engineer *** ni...@aa... <mailto:ni...@aa...> *AATON-Digital* 38000 Grenoble - France Tel +33 4 7642 9550 http://www.aaton.com http://www.transvideo.eu French Technologies for Film and Digital Cinematography Follow us on Twitter @Aaton_Digital @Transvideo_HD Like us on Facebook https://www.facebook.com/AatonDigital |
From: Nicolas P. <ni...@aa...> - 2016-01-12 15:38:14
|
Le 12/01/2016 15:36, Christopher Felton a écrit : > On 1/11/2016 1:24 AM, Nicolas Pinault wrote: >> Le 08/01/2016 19:09, Christopher Felton a écrit : >>> On 1/8/16 9:08 AM, Nicolas Pinault wrote: >>>> Hi, >>>> >>>> I am trying to generate a RAM with initial values. >>>> >>> <snip> >>>> The ram array is not initialised. >>>> >>>> Bug or bad code ? >>>> >>> Neither, the feature has not been completed and enabled >>> yet https://github.com/jandecaluwe/myhdl/issues/105 >> Ok. Great ! >> Any idea for release time ? > More complicated question than most would like :) > All devs are volunteers and most have other commitments. > Bugs are typically addressed timely enhancements depend > on availability. Based on past releases, the next release > 1.0 will be awhile. But with that said, the trunk is > very stable, many use the latest master branch. In fact, I was talking about patch release time, not release time for version 1.0. I already use trunk version. Anyway, thanks for clarifying. Regards, Nicolas > Regards, > Chris > > > > ------------------------------------------------------------------------------ > 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 > myh...@li... > https://lists.sourceforge.net/lists/listinfo/myhdl-list > . > -- *Nicolas PINAULT R&D electronics engineer *** ni...@aa... <mailto:ni...@aa...> *AATON-Digital* 38000 Grenoble - France Tel +33 4 7642 9550 http://www.aaton.com http://www.transvideo.eu French Technologies for Film and Digital Cinematography Follow us on Twitter @Aaton_Digital @Transvideo_HD Like us on Facebook https://www.facebook.com/AatonDigital |
From: Christopher F. <chr...@gm...> - 2016-01-12 14:45:19
|
On 1/11/2016 7:45 AM, Nicolas Pinault wrote: >> >> 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. >> >> Your other request: initialising the ram-array is not that much work. >> I'll try to submit a PR shortly. > That's good news :) You can refer to the issue #105 for some info: https://github.com/jandecaluwe/myhdl/issues/105 There has been some work that might be useful (or not): https://github.com/jandecaluwe/myhdl/pull/102 Henry's first pass (see PR comments), we should limit the feature to just "initial value" changes. https://github.com/hgomersall/myhdl/tree/initial_value_support I was assisting Henry some but I don't recall where I (we) left off: https://github.com/cfelton/myhdl/tree/initial_value_support Regards, Chris |
From: Christopher F. <chr...@gm...> - 2016-01-12 14:40:12
|
On 1/11/2016 1:24 AM, Nicolas Pinault wrote: > Le 08/01/2016 19:09, Christopher Felton a écrit : >> On 1/8/16 9:08 AM, Nicolas Pinault wrote: >>> Hi, >>> >>> I am trying to generate a RAM with initial values. >>> >> <snip> >>> The ram array is not initialised. >>> >>> Bug or bad code ? >>> >> Neither, the feature has not been completed and enabled >> yet https://github.com/jandecaluwe/myhdl/issues/105 > Ok. Great ! > Any idea for release time ? More complicated question than most would like :) All devs are volunteers and most have other commitments. Bugs are typically addressed timely enhancements depend on availability. Based on past releases, the next release 1.0 will be awhile. But with that said, the trunk is very stable, many use the latest master branch. Regards, Chris |
From: Christopher F. <chr...@gm...> - 2016-01-12 14:32:35
|
On 1/12/2016 4:28 AM, Tanu Hari Dixit wrote: > Hello Devs, > I am Tanu Hari Dixit, third year undergraduate in Electronic Engineering, > from Indian Institute of Technology (BHU), Varanasi, India. I am interested > in contributing to MyHDL. Please help me get started. > Tanu Hari Dixit. > Hello Tanu, First review the development guide: http://dev.myhdl.org/guide/guide.html GSoC might be of interest: http://dev.myhdl.org/gsoc/gsoc_2016.html After you understand MyHDL and the development flow you can review the issues and find a beginner issue for a first contribution: https://github.com/jandecaluwe/myhdl/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22 Issue #104 is an appropriate task for a new contributor. Regards, Chris |
From: Christopher F. <chr...@gm...> - 2016-01-12 14:26:45
|
On 1/11/2016 11:02 AM, Nagabhushan Baddi wrote: > The project DDR3 controller is quite interesting and I would love to > contribute to this project. Since the project requires familiarity with > Verilog, Python and digital design, this should be a challenging and > interesting project experience for me. > > I am going through the MyHDL docs and the sample examples and quite got > acquainted with. I would love to hear from the mentors and other developers > and get help for me to get started. > Hello Nagabhushan, Welcome and thanks for the interest. Last year we participated as a sub-org under PSF. The plan this year is the same. It will probably be a month before everyone has their pages updated but you can view what is posted now. MyHDL page: http://dev.myhdl.org/gsoc_2016.html PSF page: https://wiki.python.org/moin/SummerOfCode/2016 GsoC page: https://www.google-melange.com/ In addition to the manual and examples you can review last years GSoC SDRAM project: https://github.com/udara28/SDRAM_Controller Any MyHDL specific questions we can help with, you can also discuss with others on IRC (#myhdl on freenode[1]) and gitter[2] Regards, Chris [1] https://freenode.net/ [2] https://gitter.im/jandecaluwe/myhdl |
From: Tanu H. D. <tok...@gm...> - 2016-01-12 10:28:37
|
Hello Devs, I am Tanu Hari Dixit, third year undergraduate in Electronic Engineering, from Indian Institute of Technology (BHU), Varanasi, India. I am interested in contributing to MyHDL. Please help me get started. Tanu Hari Dixit. |
From: Nagabhushan B. <nag...@gm...> - 2016-01-11 17:02:09
|
Hello Developers, I am Nagabhushan Baddi, a 3rd year electrical engineering student at Indian Institute of Technology Roorkee. Being an enthusiastic digital designer and a python programmer I find MyHDL a perfect project team to work with during GSOC 2016. I am familiar with programming in Verilog and Python for 2 years for now and also with digital design and CMOS VLSI design. The project DDR3 controller is quite interesting and I would love to contribute to this project. Since the project requires familiarity with Verilog, Python and digital design, this should be a challenging and interesting project experience for me. I am going through the MyHDL docs and the sample examples and quite got acquainted with. I would love to hear from the mentors and other developers and get help for me to get started. Have a nice day. Thank You. |
From: Nicolas P. <ni...@aa...> - 2016-01-11 16:11:01
|
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 |
From: Nicolas P. <ni...@aa...> - 2016-01-11 13:52:05
|
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. > > Your other request: initialising the ram-array is not that much work. > I'll try to submit a PR shortly. That's good news :) Thanks Nicolas > > Regards, > > JOsy > > > > ------------------------------------------------------------------------------ > 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 > myh...@li... > https://lists.sourceforge.net/lists/listinfo/myhdl-list > . > -- *Nicolas PINAULT R&D electronics engineer *** ni...@aa... <mailto:ni...@aa...> *AATON-Digital* 38000 Grenoble - France Tel +33 4 7642 9550 http://www.aaton.com http://www.transvideo.eu French Technologies for Film and Digital Cinematography Follow us on Twitter @Aaton_Digital @Transvideo_HD Like us on Facebook https://www.facebook.com/AatonDigital |
From: Josy B. <jos...@gm...> - 2016-01-11 13:26:29
|
Nicolas Pinault <nicolas <at> aaton.com> writes: > > > Hi, > I am experimenting with asynchronous DPR (ie : with 2 clock domains) > Here is my code : <snip> > The generated VHDL code is not correct. > ram array is declared as a signal while this is not correct since 2 > processes access this object. > ram array should be declared as a shared variable. Right ? > Simulation seems to be ok. > Nicolas-- <snip> 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. Your other request: initialising the ram-array is not that much work. I'll try to submit a PR shortly. Regards, JOsy |
From: Nicolas P. <ni...@aa...> - 2016-01-11 10:11:58
|
Hi, I am experimenting with asynchronous DPR (ie : with 2 clock domains) Here is my code : def MemoryGene1000Hz( # Port A clka, addra, wea, dia, ena, doa, # Port B clkb, addrb, web, dib, enb, dob ): data_length = len(dia) # Instanciate RAM array ram = [Signal(intbv(0)[data_length:]) for i in range(2**len(addra))] # Init RAM with full scale sinus (48 samples) scale_factor = (2**(data_length-1)) - 1 for i in range(48) : v = int(sin(i*2*pi/48) * scale_factor) ram[i] = Signal(intbv(v)[data_length:]) #print(i, "%6.6X" % ram[i]) @always(clka.posedge) def portA(): if ena : doa.next = ram[addra] if wea : ram[addra].next = dia @always(clkb.posedge) def portB(): if enb : dob.next = ram[addrb] if web : ram[addrb].next = dib return portA, portB def convert(): from myhdl import toVHDL clka = Signal(bool(0)) addra = Signal(intbv(0)[8:]) wea = Signal(bool(0)) dia = Signal(intbv(0)[24:]) ena = Signal(bool(0)) doa = Signal(intbv(0)[24:]) clkb = Signal(bool(0)) addrb = Signal(intbv(0)[8:]) web = Signal(bool(0)) dib = Signal(intbv(0)[24:]) enb = Signal(bool(0)) dob = Signal(intbv(0)[24:]) toVHDL.directory = "../vhdl" #toVHDL.std_logic_ports = True toVHDL(MemoryGene1000Hz, clka, addra, wea, dia, ena, doa, clkb, addrb, web, dib, enb, dob ) The generated VHDL code is not correct. ram array is declared as a signal while this is not correct since 2 processes access this object. ram array should be declared as a shared variable. Right ? Simulation seems to be ok. Nicolas -- *Nicolas PINAULT R&D electronics engineer *** ni...@aa... <mailto:ni...@aa...> *AATON-Digital* 38000 Grenoble - France Tel +33 4 7642 9550 http://www.aaton.com http://www.transvideo.eu French Technologies for Film and Digital Cinematography Follow us on Twitter @Aaton_Digital @Transvideo_HD Like us on Facebook https://www.facebook.com/AatonDigital |
From: Nicolas P. <ni...@aa...> - 2016-01-11 09:52:05
|
Le 08/01/2016 19:09, Christopher Felton a écrit : > On 1/8/16 9:08 AM, Nicolas Pinault wrote: >> Hi, >> >> I am trying to generate a RAM with initial values. >> > <snip> >> The ram array is not initialised. >> >> Bug or bad code ? >> > Neither, the feature has not been completed and enabled > yet https://github.com/jandecaluwe/myhdl/issues/105 Ok. Great ! Any idea for release time ? Nicolas > > Regards > Chris > > > > ------------------------------------------------------------------------------ > _______________________________________________ > myhdl-list mailing list > myh...@li... > https://lists.sourceforge.net/lists/listinfo/myhdl-list > . > -- *Nicolas PINAULT R&D electronics engineer *** ni...@aa... <mailto:ni...@aa...> *AATON-Digital* 38000 Grenoble - France Tel +33 4 7642 9550 http://www.aaton.com http://www.transvideo.eu French Technologies for Film and Digital Cinematography Follow us on Twitter @Aaton_Digital @Transvideo_HD Like us on Facebook https://www.facebook.com/AatonDigital |
From: Christopher F. <chr...@gm...> - 2016-01-08 18:09:42
|
On 1/8/16 9:08 AM, Nicolas Pinault wrote: > Hi, > > I am trying to generate a RAM with initial values. > <snip> > > The ram array is not initialised. > > Bug or bad code ? > Neither, the feature has not been completed and enabled yet https://github.com/jandecaluwe/myhdl/issues/105 Regards Chris |
From: Nicolas P. <ni...@aa...> - 2016-01-08 17:37:53
|
Hi, I am trying to generate a RAM with initial values. Here is the code : def MemoryGene1000Hz( ... ): data_length = len(dia) # Instanciate RAM array ram = [Signal(intbv(0)[data_length:]) for i in range(2**len(addra))] # Init RAM with full scale sinus (48 samples) scale_factor = (2**(data_length-1)) - 1 for i in range(48) : v = int(sin(i*2*pi/48) * scale_factor) ram[i] = Signal(intbv(v)[data_length:]) #print(i, "%6.6X" % ram[i]) ... VHDL code generated is as follows : type t_array_ram is array(0 to 256-1) of unsigned(23 downto 0); signal ram: t_array_ram; The ram array is not initialised. Bug or bad code ? Nicolas -- *Nicolas PINAULT R&D electronics engineer *** ni...@aa... <mailto:ni...@aa...> *AATON-Digital* 38000 Grenoble - France Tel +33 4 7642 9550 http://www.aaton.com http://www.transvideo.eu French Technologies for Film and Digital Cinematography Follow us on Twitter @Aaton_Digital @Transvideo_HD Like us on Facebook https://www.facebook.com/AatonDigital |
From: Christopher F. <chr...@gm...> - 2015-12-30 00:26:55
|
On 12/29/15 5:35 PM, Edward Vidal wrote: > Chris, > When you only use the logic what transfers data to the FPGA? Depends on what interface I want to use. One can use the logic to drive the interface: UART, Ethernet, etc. Regards, Chris > > Have a Happy New Year. > Regards, > Edward Vidal Jr. e-mail dev...@sb... 915-595-1613 > > > On Tuesday, December 29, 2015 4:25 PM, Christopher Felton > <chr...@gm...> wrote: > > > On 12/29/15 5:05 PM, Edward Vidal wrote: > > Chris , The example you provided should also work with a XulA2-LX9 > > is that correct? > > Yes it should, you need the correct PMODs > for the Xula2 and stickit. > > > I have downloaded IceCube2 but have not installed > > it? Which version of IceCube2 have you tested Linux or window? > > IceCub2 2015.08.27744 on linux, Ubuntu 15.10. > > > I > > normally work on a Ubuntu 12.04 this is where I have the Xilinx > > 14.6. Which board has the highest priority? > > Not sure what you mean, highest priority? From > my point of view a design should work with many > different boards - no board really has a priority. > > > I also have been looking > > at the Parallella & zybo. Are these 2 boards easier to work with than > > the Zedboard. > > Don't know, haven't used a Zedboard, the Zybo is > easier to use than the Parallella. > > > I have an Yocto O/S working but nothing in the FPGA > > side. Are you working on theses board using the Zynq 7000? > > Yes, the Zynq 7010 and 7020 I only use the logic > side I don't do anything with the PS. > > > Regards, > Chris > > > ------------------------------------------------------------------------------ > _______________________________________________ > myhdl-list mailing list > myh...@li... <mailto:myh...@li...> > https://lists.sourceforge.net/lists/listinfo/myhdl-list > > |
From: Edward V. <dev...@sb...> - 2015-12-29 23:36:08
|
Chris,When you only use the logic what transfers data to the FPGA? Have a Happy New Year.Regards, Edward Vidal Jr. e-mail dev...@sb... 915-595-1613 On Tuesday, December 29, 2015 4:25 PM, Christopher Felton <chr...@gm...> wrote: On 12/29/15 5:05 PM, Edward Vidal wrote: > Chris , The example you provided should also work with a XulA2-LX9 > is that correct? Yes it should, you need the correct PMODs for the Xula2 and stickit. > I have downloaded IceCube2 but have not installed > it? Which version of IceCube2 have you tested Linux or window? IceCub2 2015.08.27744 on linux, Ubuntu 15.10. > I > normally work on a Ubuntu 12.04 this is where I have the Xilinx > 14.6. Which board has the highest priority? Not sure what you mean, highest priority? From my point of view a design should work with many different boards - no board really has a priority. > I also have been looking > at the Parallella & zybo. Are these 2 boards easier to work with than > the Zedboard. Don't know, haven't used a Zedboard, the Zybo is easier to use than the Parallella. > I have an Yocto O/S working but nothing in the FPGA > side. Are you working on theses board using the Zynq 7000? Yes, the Zynq 7010 and 7020 I only use the logic side I don't do anything with the PS. Regards, Chris ------------------------------------------------------------------------------ _______________________________________________ myhdl-list mailing list myh...@li... https://lists.sourceforge.net/lists/listinfo/myhdl-list |
From: Christopher F. <chr...@gm...> - 2015-12-29 23:25:14
|
On 12/29/15 5:05 PM, Edward Vidal wrote: > Chris , The example you provided should also work with a XulA2-LX9 > is that correct? Yes it should, you need the correct PMODs for the Xula2 and stickit. > I have downloaded IceCube2 but have not installed > it? Which version of IceCube2 have you tested Linux or window? IceCub2 2015.08.27744 on linux, Ubuntu 15.10. > I > normally work on a Ubuntu 12.04 this is where I have the Xilinx > 14.6. Which board has the highest priority? Not sure what you mean, highest priority? From my point of view a design should work with many different boards - no board really has a priority. > I also have been looking > at the Parallella & zybo. Are these 2 boards easier to work with than > the Zedboard. Don't know, haven't used a Zedboard, the Zybo is easier to use than the Parallella. > I have an Yocto O/S working but nothing in the FPGA > side. Are you working on theses board using the Zynq 7000? Yes, the Zynq 7010 and 7020 I only use the logic side I don't do anything with the PS. Regards, Chris |