www.delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2013/08/31/15:28:20

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20130820;
h=x-gm-message-state:mime-version:from:date:message-id:subject:to
:content-type;
bh=bPZbPI3NKOgEvkNCfHAQPhqysvXk/TuDOVgHzdXNjMs=;
b=CxKgYIY/3BRrFVnTGxtVV6uVUMOoH2GU5Wrx1IflcCjk2A0uShP73tOsdfHNs18Iw5
fIE5S1ejGdmbnfYn5TErUzZ7Kg6PmY6YgIz35EpNSda1+5zn8hsMpDLIzuh4sGSYB502
emaRm4djQmF46MpYdOMQwOq3DZRjmWclrySb/kBsMUMUa3id5zaKf+29vLnac8ybiY4X
bLL6yT+egUDhnfvTBZD9YB5gu8t0wADvzbn9jkRRlSNhvy3Of96wkefE242qF/uilI9M
ht0VcKEKDERwlBEwhkzu1GhbtlF+8f6YxOirVGT9/hqya2dqh+GV0HCPddeuk4hSBiKR
WW1A==
X-Gm-Message-State: ALoCoQmmXrBjGW8R18Vra8a90yNpMS11FcdZtZyS7YtscsYvfC/t7IndSwf5If3T2RuejaTXpw4j
X-Received: by 10.180.20.33 with SMTP id k1mr7340991wie.21.1377977270898; Sat,
31 Aug 2013 12:27:50 -0700 (PDT)
MIME-Version: 1.0
From: Joshua Lansford <joshua DOT lansford AT laserlinc DOT com>
Date: Sat, 31 Aug 2013 15:27:30 -0400
Message-ID: <CAGRhJMag+hNGutkiG6Mgr9+vxaSynkNEajR0HE2gs8GeZM0o0Q@mail.gmail.com>
Subject: [geda-user] VE
To: geda-user AT delorie DOT com
Reply-To: geda-user AT delorie DOT com

--bcaec53d5ee1bda8b304e5435562
Content-Type: text/plain; charset=ISO-8859-1

Hey guys,
  Sorry if this is too off topic.  Am wanting to share a pet project I did
a while back.  Kind of been emboldened to share it by others sharing. :-P
  I have been seeing the industry slowly moving from Verilog and VHDL to
higher-level languages for FPGA firmware and ASIC design.  Xilinx is
pushing a C to HDL converter but it definitely isn't free.
  I wrote a proof of concept higher level language compiler which compiles
down to synthesizable Verilog which can also be simulated by gEDA icarus.
 It is open source and hosted here:
https://github.com/JEdward7777/VerilogExpress

Here is an example of the code.  Blocks of code which start with [ and ]
are executed simultaneously while blocks which start and end with { } are
executed sequentially.  There currently are two var types.  Pipes and
Registers.  Pipes block on read or write until the other-side has a read or
write.
Inputs and outputs to a module are Pipes which include the data bits and
read and write control signals.

module gcd[
  input aIn;
  input bIn;
  output oOut;

  while( 1 ){
    reg aReg = 0;
    reg bReg = 0;
    [ aReg = aIn; bReg = bIn; ]

    while( bReg != 0 ){
      if( aReg < bReg )[
        aReg = bReg;
        bReg = aReg;
      ]else
        aReg = aReg - bReg;
    }

    oOut = aReg;
  }
]

The project is not currently moving, but thought perhaps folks might find
it interesting.  Currently all the vars are stuck at 32 bits, but Verilog
synthesizers generally get rid of unused bits anyway.
An argument for this type of language is that FPGAs are getting bigger and
bigger but people aren't getting smarter and smarter.  As writing in
assembly is often not as usefull now days as c or some other higher level
laungauge even though it isn't as efficient, it keeps projects rolling
because the simplifications allows greater project complexities. The same
seems to be true with hardware development, but I am not aware of any other
open source project working in this direction.
~Joshua

--bcaec53d5ee1bda8b304e5435562
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hey guys,<div>=A0 Sorry if this is too off topic. =A0Am wa=
nting to share a pet project I did a while back. =A0Kind of been emboldened=
 to share it by others sharing. :-P</div><div>=A0 I have been seeing the in=
dustry slowly moving from Verilog and VHDL to higher-level languages for FP=
GA firmware and ASIC design. =A0Xilinx is pushing a C to HDL converter but =
it definitely isn&#39;t free.</div>

<div>=A0 I wrote a proof of concept higher level language compiler which co=
mpiles down to synthesizable Verilog which can also be simulated by gEDA ic=
arus. =A0It is open source and hosted here:=A0</div><div><a href=3D"https:/=
/github.com/JEdward7777/VerilogExpress">https://github.com/JEdward7777/Veri=
logExpress</a><br>

<br></div><div>Here is an example of the code. =A0Blocks of code which star=
t with [ and ] are executed simultaneously while blocks which start and end=
 with { } are executed sequentially. =A0There currently are two var types. =
=A0Pipes and Registers. =A0Pipes block on read or write until the other-sid=
e has a read or write.</div>

<div>Inputs and outputs to a module are Pipes which include the data bits a=
nd read and write control signals.</div><div><br></div><div><div>module gcd=
[</div><div>=A0 input aIn;</div><div>=A0 input bIn;</div><div>=A0 output oO=
ut;</div>

<div><br></div><div>=A0 while( 1 ){</div><div>=A0 =A0 reg aReg =3D 0;</div>=
<div>=A0 =A0 reg bReg =3D 0;</div><div>=A0 =A0 [ aReg =3D aIn; bReg =3D bIn=
; ]</div><div><br></div><div>=A0 =A0 while( bReg !=3D 0 ){</div><div>=A0 =
=A0 =A0 if( aReg &lt; bReg )[ =A0</div>

<div>=A0 =A0 =A0 =A0 aReg =3D bReg;</div><div>=A0 =A0 =A0 =A0 bReg =3D aReg=
;</div><div>=A0 =A0 =A0 ]else</div><div>=A0 =A0 =A0 =A0 aReg =3D aReg - bRe=
g;</div><div>=A0 =A0 }</div><div><br></div><div>=A0 =A0 oOut =3D aReg;</div=
><div>=A0 }</div><div>]</div></div><div><br>

</div><div>The project is not currently moving, but thought perhaps folks m=
ight find it interesting. =A0Currently all the vars are stuck at 32 bits, b=
ut Verilog synthesizers generally get rid of unused bits anyway.</div><div>

An argument for this type of language is that FPGAs are getting bigger and =
bigger but people aren&#39;t getting smarter and smarter. =A0As writing in =
assembly is often not as usefull now days as c or some other higher level l=
aungauge even though it isn&#39;t as efficient, it keeps projects rolling b=
ecause the simplifications allows greater project complexities. The same se=
ems to be true with hardware development, but I am not aware of any other o=
pen source project working in this direction.</div>

<div>~Joshua</div></div>

--bcaec53d5ee1bda8b304e5435562--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019