Re: [ARTIQ] ARTIQ implementation

2016-10-04 Thread Sébastien Bourdeauducq

Hi,

On Wednesday, October 05, 2016 12:17 PM, Cornelius Hempel wrote:

At this stage, we are just trying to get an understanding of the size and 
functional requirements (FPGA space and features) at the verilog level - which 
both Trung, our FPGA engineer, and Moglabs speak.


you can simply look at the synthesis logs on our buildserver, e.g.
http://buildbot.m-labs.hk/builders/artiq-board/builds/66/steps/conda_build/logs/stdio
http://buildbot.m-labs.hk/waterfall?show=artiq-board

Note that most of our builds are for the KC705, which uses significantly 
more resources than the Pipistrello target.


Sébastien
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] ARTIQ implementation

2016-10-04 Thread Cornelius Hempel
Hi,

At this stage, we are just trying to get an understanding of the size and 
functional requirements (FPGA space and features) at the verilog level - which 
both Trung, our FPGA engineer, and Moglabs speak. 
So just the pre-bitstream verilog code would be sufficient to get a feel for 
it. 

If anyone could spare a copy just of these, that would be very helpful. 

Porting Migen/MiSoC to a new target is likely the way to go eventually.

Thanks & best regards from Sydney!
Cornelius

> On 5 Oct 2016, at 14:10, Sébastien Bourdeauducq  wrote:
> 
> Hi,
> 
> On Wednesday, October 05, 2016 09:49 AM, Trung Nguyen wrote:
>> My goal is to extract the Verilog comprising that gets compiled into the
>> FPGA bitstream in order to establish how and if we can deploy it on
>> another SPARTAN 6 board (= the pipistrello FPGA) made commercially by
>> moglabs here in Australia.
>> 
>> It appears that I need to intercept the output of both Migen and MiSoC
>> as they build the gateway bitstream, BIOS and runtime.
> 
> Better port Migen/MiSoC to your board, otherwise you will have to take 
> apart/reinvent the ARTIQ build system.
> 
>> I have tried two ways to install ARTIQ, (1) via Anaconda and (2) from
>> source.
>> (1) fails as Migen and MiSoC are not part of the distribution and I
>> presume this branch is just to compile user control commands to send to
>> the FPGA, correct?
> 
> Migen and MiSoC are packaged for conda and it is possible to build a 
> bitstream using only the conda packages. But since you are intending to 
> develop I recommend you use (and learn) git.
> 
>> Trying Artiq 2.0, as pointed out in your previous email,
>> I tried to build gateware bitstream but I got this error:
>> 
>> 
>>AttributeError: type object 'BaseSoC' has no attribute 'csr_map'
> 
> https://github.com/m-labs/artiq/issues/565
> If you use MiSoC from Git (not conda), "git checkout 0.3" also gives you the 
> correct version.
> 
> Sébastien
> ___
> ARTIQ mailing list
> https://ssl.serverraum.org/lists/listinfo/artiq

—
Dr. Cornelius Hempel
Quantum Control Laboratory
The University of Sydney
School of Physics | Faculty of Science
Sydney Nanoscience Hub
Building A31, room 3011
NSW 2006, Australia
phone: +61 2 8627 5037

___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] ARTIQ implementation

2016-10-04 Thread Sébastien Bourdeauducq

Hi,

On Wednesday, October 05, 2016 09:49 AM, Trung Nguyen wrote:

My goal is to extract the Verilog comprising that gets compiled into the
FPGA bitstream in order to establish how and if we can deploy it on
another SPARTAN 6 board (= the pipistrello FPGA) made commercially by
moglabs here in Australia.

It appears that I need to intercept the output of both Migen and MiSoC
as they build the gateway bitstream, BIOS and runtime.


Better port Migen/MiSoC to your board, otherwise you will have to take 
apart/reinvent the ARTIQ build system.



I have tried two ways to install ARTIQ, (1) via Anaconda and (2) from
source.
(1) fails as Migen and MiSoC are not part of the distribution and I
presume this branch is just to compile user control commands to send to
the FPGA, correct?


Migen and MiSoC are packaged for conda and it is possible to build a 
bitstream using only the conda packages. But since you are intending to 
develop I recommend you use (and learn) git.



Trying Artiq 2.0, as pointed out in your previous email,
I tried to build gateware bitstream but I got this error:


AttributeError: type object 'BaseSoC' has no attribute 'csr_map'


https://github.com/m-labs/artiq/issues/565
If you use MiSoC from Git (not conda), "git checkout 0.3" also gives you 
the correct version.


Sébastien
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] ARTIQ implementation

2016-10-04 Thread Trung Nguyen
Dear ARTIQ users,

I'm still trying to set up the Artiq environment in order to be able to
compile the FPGA bitstream code, but I am getting stuck both with ARTIQ 3.0
and 2.0.

My goal is to extract the Verilog comprising that gets compiled into the
FPGA bitstream in order to establish how and if we can deploy it on another
SPARTAN 6 board (= the pipistrello FPGA) made commercially by moglabs here
in Australia.

It appears that I need to intercept the output of both Migen and MiSoC as
they build the gateway bitstream, BIOS and runtime.

I have tried two ways to install ARTIQ, (1) via Anaconda and (2) from
source.
(1) fails as Migen and MiSoC are not part of the distribution and I presume
this branch is just to compile user control commands to send to the FPGA,
correct?
Therefore, I went with (2), both trying ARTIQ 3.0 and 2.0, but still get
stuck.

With Artiq 3.0, I can't install rustc successfully, I got this error:

> configure: configuring submodules
>
> configure:
>
> configure:
>
> configure: looking at LLVM
>
> configure:
>
> configure: not reconfiguring LLVM, external LLVM root
>
> configure: error: program '/usr/local/llvm-or1k/bin/llvm-config/bin/FileCheck'
>> is missing, please install it
>
> When executing this command:

> ../configure --prefix=/usr/local/rust-or1k 
> --llvm-root=/usr/local/llvm-or1k/bin/llvm-config
> --disable-manage-submodules

given on

>  https://m-labs.hk/artiq/manual-master/installing_from_source.html


 I found "FileCheck” in the following directory:

> /home/trungnguyen/artiq-dev-3.0/llvm-or1k/build/bin/FileCheck
>
and changed  to --llvm-root=/home/trungnguyen/artiq-dev-3.0/llvm-or1k/build.
It ran successfully but I'm not sure if it's the solution or not.

Trying Artiq 2.0, as pointed out in your previous email, I downloaded it
from
https://github.com/m-labs/artiq/releases/tag/2.0
And followed the instructions on:
https://m-labs.hk/artiq/manual-release-2/installing_from_source.html

I tried to build gateware bitstream but I got this error:

> (artiq-main) trungnguyen@trungnguyen:~/artiq-dev$ python3.5 -m
>> artiq.gateware.targets.pipistrello
>
> Traceback (most recent call last):
>
>   File "/home/trungnguyen/anaconda3/envs/artiq-main/lib/python3.5/runpy.py",
>> line 184, in _run_module_as_main
>
> "__main__", mod_spec)
>
>   File "/home/trungnguyen/anaconda3/envs/artiq-main/lib/python3.5/runpy.py",
>> line 85, in _run_code
>
> exec(code, run_globals)
>
>   File 
> "/home/trungnguyen/artiq-dev/artiq/artiq/gateware/targets/pipistrello.py",
>> line 127, in 
>
> class NIST_QC1(BaseSoC, AMPSoC):
>
>   File 
> "/home/trungnguyen/artiq-dev/artiq/artiq/gateware/targets/pipistrello.py",
>> line 136, in NIST_QC1
>
> csr_map.update(BaseSoC.csr_map)
>
> AttributeError: type object 'BaseSoC' has no attribute 'csr_map'
>
>
I commented out this attribute. I know this is not a good way to solve
problem but I have no knowledge of the script file.
Then I tried again and received error messages, please refer to the
attached files (logfile and errorfile) for more information.

I would be grateful if you could point me in the right direction.

Thank you very much,
Trung

Best Regards,
Trung Vu Nguyen

On 29 September 2016 at 20:31, Trung Nguyen 
wrote:

> Hi,
>
> the mailing list I was referring to is the ARTIQ list (
>> https://ssl.serverraum.org/lists/listinfo/artiq).
>>
>> You need to use a modified Rust:
>> https://github.com/m-labs/rust
>>
>> Full compilation instructions for the upcoming ARTIQ 3.0 are here:
>> https://m-labs.hk/artiq/manual-master/installing_from_source
>> .html#preparing-the-build-environment-for-the-core-device
>>
>> Alternatively you can use the already released ARTIQ 2.0 which does not
>> require Rust.
>
>
> Thank you for your reply. I will try it.
>
> The note about using the or1k-linux target only refers to building
>> binutils,
>> as it is a workaround to its undesirable behavior. Everything else uses
>> the target
>> or1k-unknown as it is the correct one.
>
>
> Hi Peter, "or1k-unknown" is default target it in the script and I tried it
> first but I got the error. Then I changed it to "or1k-linux" but it's not
> solved.
> Thank you.
>
> Best Regards,
> Trung Vu Nguyen
>
> On 29 September 2016 at 12:28, Sébastien Bourdeauducq 
> wrote:
>
>> Hi,
>>
>> the mailing list I was referring to is the ARTIQ list (
>> https://ssl.serverraum.org/lists/listinfo/artiq).
>>
>> You need to use a modified Rust:
>> https://github.com/m-labs/rust
>>
>> Full compilation instructions for the upcoming ARTIQ 3.0 are here:
>> https://m-labs.hk/artiq/manual-master/installing_from_source
>> .html#preparing-the-build-environment-for-the-core-device
>>
>> Alternatively you can use the already released ARTIQ 2.0 which does not
>> require Rust.
>>
>> Sébastien
>>
>>
>>
>> On Thursday, September 29, 2016 10:28 AM, Trung Nguyen wrote:
>>
>>> Hi Developers,
>>>
>>> I'm trying to run the Artiq environment to compile the gateware file.

Re: [ARTIQ] ARTIQ implementation

2016-09-29 Thread Peter Zotov

On Thursday, September 29, 2016 10:28 AM, Trung Nguyen wrote:

The target is incorrect. It was "or1k-unknown" but I read the note in
released manual as below:

We’re using an |or1k-linux| target because it is necessary to 
enable

shared library support in |ld|, not because Linux is involved.

from this link:
https://m-labs.hk/artiq/manual-release-2/installing_from_source.html#install-from-source
So I tried to change the target to "or1k-linux" but it does work.


The note about using the or1k-linux target only refers to building 
binutils,
as it is a workaround to its undesirable behavior. Everything else uses 
the target

or1k-unknown as it is the correct one.

--
Peter Zotov
___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq


Re: [ARTIQ] ARTIQ implementation

2016-09-28 Thread Sébastien Bourdeauducq

Hi,

the mailing list I was referring to is the ARTIQ list 
(https://ssl.serverraum.org/lists/listinfo/artiq).


You need to use a modified Rust:
https://github.com/m-labs/rust

Full compilation instructions for the upcoming ARTIQ 3.0 are here:
https://m-labs.hk/artiq/manual-master/installing_from_source.html#preparing-the-build-environment-for-the-core-device

Alternatively you can use the already released ARTIQ 2.0 which does not 
require Rust.


Sébastien


On Thursday, September 29, 2016 10:28 AM, Trung Nguyen wrote:

Hi Developers,

I'm trying to run the Artiq environment to compile the gateware file.
My OS is Linux. Distribution version is Ubuntu 14.04LTS

I have done step-by-step installation of the following manual but
excepts the openOCD because we don't have FPGA board yet:
https://m-labs.hk/artiq/manual-release-2/installing_from_source.html#install-from-source

The installation process is almost ok but I have some problems with
libraries and packages that I had to install when I installed Artiq.
I installed the following libraries and packages:

hdf5-1.8.17
pygit2==0.19.1
numpy-1.11.2rc1
h5py-2.6.0
libffi6 Version: 3.1~rc1+r3.0.13-12ubuntu0.1
Package: libhdf5-dev Version: 1.8.11-5ubuntu7
cargo 0.13.0-nightly (7964e94 2016-09-27)
rustc 1.11.0 (9b21dcd6a 2016-08-15)


I'm struggling with an error when I run this code:

python3.5 -m artiq.gateware.targets.pipistrello

And here is the error message:

make: Entering directory

`/home/trungnguyen/artiq-dev/misoc_nist_qc1_pipistrello/software/runtime'

CARGO_TARGET_DIR="./cargo" \

cargo rustc --verbose \

--manifest-path
/home/trungnguyen/artiq-dev/artiq/artiq/runtime/../runtime.rs/Cargo.toml
 \

--target=or1k-linux -- \

-C target-feature=+mul,+div,+ffl1,+cmov,+addc -C opt-level=s \

-L../libcompiler-rt

error: failed to run `rustc` to learn about target-specific
information


Caused by:

  process didn't exit successfully: `rustc - --crate-name _
--print=file-names --crate-type bin --crate-type rlib
--crate-type staticlib --target or1k-linux` (exit code: 101)

--- stderr

error: Error loading target specification: Could not find
specification for target "or1k-linux"


make: *** [libartiq_rust.a] Error 101


The target is incorrect. It was "or1k-unknown" but I read the note in
released manual as below:

We’re using an |or1k-linux| target because it is necessary to enable
shared library support in |ld|, not because Linux is involved.

from this link:
https://m-labs.hk/artiq/manual-release-2/installing_from_source.html#install-from-source
So I tried to change the target to "or1k-linux" but it does work.

Could you please have a look? Any comments are appreciated.
Thank you.

Best Regards,
Trung Vu Nguyen

___
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq