--- /dev/null
+Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
+Envelope-to: publicinbox@libre-riscv.org
+Delivery-date: Tue, 17 Mar 2020 00:24:14 +0000
+Received: from localhost ([::1] helo=libre-riscv.org)
+ by libre-riscv.org with esmtp (Exim 4.89)
+ (envelope-from <libre-riscv-dev-bounces@lists.libre-riscv.org>)
+ id 1jE01l-0007SZ-5k; Tue, 17 Mar 2020 00:24:13 +0000
+Received: from localhost ([127.0.0.1] helo=bugs.libre-riscv.org)
+ by libre-riscv.org with esmtp (Exim 4.89)
+ (envelope-from <bugzilla-daemon@libre-riscv.org>) id 1jE01j-0007SQ-Jo
+ for libre-riscv-dev@lists.libre-riscv.org; Tue, 17 Mar 2020 00:24:11 +0000
+From: bugzilla-daemon@libre-riscv.org
+To: libre-riscv-dev@lists.libre-riscv.org
+Date: Tue, 17 Mar 2020 00:24:12 +0000
+X-Bugzilla-Reason: CC
+X-Bugzilla-Type: changed
+X-Bugzilla-Watch-Reason: None
+X-Bugzilla-Product: Libre-SOC's first SoC
+X-Bugzilla-Component: Hardware Layout
+X-Bugzilla-Version: unspecified
+X-Bugzilla-Keywords:
+X-Bugzilla-Severity: enhancement
+X-Bugzilla-Who: Jean-Paul.Chaput@lip6.fr
+X-Bugzilla-Status: CONFIRMED
+X-Bugzilla-Resolution:
+X-Bugzilla-Priority: ---
+X-Bugzilla-Assigned-To: tanner.of.kha@gmail.com
+X-Bugzilla-Flags:
+X-Bugzilla-Changed-Fields:
+Message-ID: <bug-217-13-eUHttRq7Y7@http.bugs.libre-riscv.org/>
+In-Reply-To: <bug-217-13@http.bugs.libre-riscv.org/>
+References: <bug-217-13@http.bugs.libre-riscv.org/>
+X-Bugzilla-URL: http://bugs.libre-riscv.org/
+Auto-Submitted: auto-generated
+MIME-Version: 1.0
+Subject: [libre-riscv-dev] [Bug 217] create a "ring" system which allows pad
+ locations to be specified conveniently
+X-BeenThere: libre-riscv-dev@lists.libre-riscv.org
+X-Mailman-Version: 2.1.23
+Precedence: list
+List-Id: Libre-RISCV General Development
+ <libre-riscv-dev.lists.libre-riscv.org>
+List-Unsubscribe: <http://lists.libre-riscv.org/mailman/options/libre-riscv-dev>,
+ <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=unsubscribe>
+List-Archive: <http://lists.libre-riscv.org/pipermail/libre-riscv-dev/>
+List-Post: <mailto:libre-riscv-dev@lists.libre-riscv.org>
+List-Help: <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=help>
+List-Subscribe: <http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev>,
+ <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=subscribe>
+Reply-To: Libre-RISCV General Development
+ <libre-riscv-dev@lists.libre-riscv.org>
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+Errors-To: libre-riscv-dev-bounces@lists.libre-riscv.org
+Sender: "libre-riscv-dev" <libre-riscv-dev-bounces@lists.libre-riscv.org>
+
+aHR0cDovL2J1Z3MubGlicmUtcmlzY3Yub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcKCi0tLSBDb21t
+ZW50ICMxMyBmcm9tIEplYW4tUGF1bC5DaGFwdXRAbGlwNi5mciAtLS0KKEluIHJlcGx5IHRvIEpl
+YW4tUGF1bC5DaGFwdXQgZnJvbSBjb21tZW50ICMxMikKPiAoSW4gcmVwbHkgdG8gTHVrZSBLZW5u
+ZXRoIENhc3NvbiBMZWlnaHRvbiBmcm9tIGNvbW1lbnQgIzEwKQo+IAo+IEFuc3dlcmluZyBoZXJl
+IGFib3V0IHNob3dQeXRob25UcmFjZSgpOgo+IAo+IEkgY3JlYXRlZCBpdCBiZWNhdXNlOgo+ICog
+SSB3YW50ZWQgYSBtb3JlIGNvbXBhY3QgZGlzcGxheWluZyBvZiB0aGUgdHJhY2UgKG5vIGxpbmUg
+d3JhcCBiZWNhdXNlCj4gICB0byByZWFkIG1vcmUgcXVpY2tseSBhcyBJIGRlYnVnKS4KPiAqIFRo
+ZSBzY3JpcHQgY2FuIGJlIGV4ZWN1dGVkIGluIHRocmVlIGNvbnRleHRzOgo+ICAgMS4gR1VJCj4g
+ICAyLiBUZXh0IHdpdGggY2d0ICgtLXNjcmlwdD0uLi4pCj4gICAzLiBEaXJlY3QgY29tbWFuZCBs
+aW5lLgo+ICAgICBJIHdhbnRlZCBlc3BlY2lhbGx5IHRoZSBHVUkgdG8gYmUgYWJsZSB0byByZWNv
+dmVyIGFmdGVyCj4gICBhbiBleGNlcHRpb24gaXMgcmFpc2VkLCB0byBkbyBzb21lIGZvcmVuc2lj
+Lgo+ICAgICBJdCBpcyBmYXIgZnJvbSBwZXJmZWN0IGJ1dCBkaWQgaGVscCBtZSBtdWNoIHdoaWxl
+IGRlYnVnZ2luZy4KPiAKPiA+IChJbiByZXBseSB0byBKZWFuLVBhdWwuQ2hhcHV0IGZyb20gY29t
+bWVudCAjOCkKPiA+IAo+ID4gPiAgIE9idmlvdXNseS4gQmVjYXVzZSBpdCB3b3JrcyBvbiBteSBl
+bmQuIEkgd2lsbCByZWRvIHRoZSB3aG9sZSBpbnN0YWxsCj4gPiA+ICAgcHJvY2VzcyB1bmRlciBE
+ZWJpYW4gMTAgaW4gdGhlIG5leHQgZmV3IGRheXMgdG8gc2VlIGlmIEkgY2FuIHJlcHJvZHVjZQo+
+ID4gPiAgIHlvdXIgcHJvYmxlbS4KPiA+IAo+ID4gaSBmb3Jnb3QgdG8gc2F5LCBqZWFuLXBhdWw6
+IGkgaGF2ZSBkZWJpYW4vMTAgbm93IGFzIHdlbGwuIHRoZSAiZXhwb3J0Cj4gPiBMRF9MSUJSQVJZ
+X1BBVEg9Li4uLmxpYiBleHBvcnQgTERfTElCUkFSWV9QQVRIPSAuLi4gbGliNjQiIGhhY2sgc2hv
+d24gaGVyZQo+ID4gbWFrZXMgdGhlIGluc3RhbGwgIndvcmsiIHdpdGggbm8gbW9kcyBuZWVkZWQg
+dG8gYWxsaWFuY2UvY29yaW9saXMyCj4gPiBodHRwczovL2xpYnJlLXJpc2N2Lm9yZy9IRExfd29y
+a2Zsb3cvY29yaW9saXMyLwo+IAo+ICAgTXkgbGF0ZXN0IGNvbW1pdCBzaG91bGQgY29ycmVjdCB0
+aGF0LCBidXQgSSB3aWxsIGNvbmZpcm0gd2hlbiBJIGNoZWNrCj4gICBpdCB1bmRlciBEZWJpYW4g
+MTAuCj4gCj4gIAo+ID4gPiAgIGJ1dCByYW50aW5nIGFib3V0ICJ0aGlzIGlzIGJhZGx5IHdyaXR0
+ZW4iIGRvIG5vdCBoZWxwLiBJIGZsYXR0ZXIgbXlzZWxmCj4gPiA+ICAgdG8gaGF2ZSB0aGUgInNj
+aWVudGlmaWMgc3Bpcml0Iiwgc28gaWYgeW91IHBpbnBvaW50IG1lIGJhZGx5IHdyaXR0ZW4gY29k
+ZQo+ID4gPiAgIGFuZCAqd2h5KiBpdCBpcyBzbyAod2l0aCByZWZlcmVuY2UpLCBJIHdpbGwgaW1w
+cm92ZSBpdCBpbiBteSBmdXR1ciBjb2RlCj4gPiA+ICAgYW5kIHByb2dyZXNzaXZlbHkgcmV3cml0
+ZSB0aGUgb2xkIG9uZS4KPiA+IAo+ID4gbm9uZSBvZiB0aGUgcHl0aG9uIGNvZGUgaXMgcGVwOCBj
+b21wbGlhbnQsIGplYW4tcGF1bC4gIHRoZSAyLXNwYWNlcwo+ID4gaW5kZW50YXRpb24gaXMgZXh0
+cmVtZWx5IGhhcmQgb24gdGhlIGV5ZXMgZm9yIGFueW9uZSB1c2VkIHRvIHRoZSBwZXA4Cj4gPiBz
+dGFuZGFyZCAoYmVjYXVzZSB0aGUgc21hbGxlciBpbmRlbnRhdGlvbiBtYWtlcyAiY29kZSBibG9j
+a3MiIHRoYXQgbXVjaAo+ID4gaGFyZGVyIHRvIHZpc3VhbGx5IGlkZW50aWZ5KS4KPiAKPiAgIEkg
+dW5kZXJzdGFuZCwgSSdtIGFjY3VzdG9tZWQgdG8gaXQgYW5kIGhhdmUgbm8gcHJvYmxlbSB3aXRo
+IGl0Lgo+ICAgVGhpcyBpcyBiZWNhdXNlIHNvbWV0aW1lIHRoZSBuZXN0aW5nIGNvdWxkIGJlIHZl
+cnkgZGVlcCwgYW5kIEkKPiAgIGRpZCBub3Qgd2FudCB0aGluZ3MgdG8gZ28gdG9vIG11Y2ggdG8g
+dGhlIHJpZ2h0Lgo+ICAgSSB3aWxsIHN3aXRjaCB0byA0IHNwYWNlcy4KPiAKPiA+IGFuZCB0aGUg
+dXNlIG9mIGNvbW1hcyBhdCB0aGUgKmJlZ2lubmluZyogb2YgdGhlIGxpbmUgb24gYSBwYXJhbWV0
+ZXIgbGlzdCwKPiA+IHJhdGhlciB0aGFuIHRoZSB1c3VhbCBwbGFjZSBhdCB0aGUgKmVuZCogb2Yg
+dGhlIGxpbmUsIGlzIHZlcnkgZGlmZmljdWx0IHRvCj4gPiBnZXQgdXNlZCB0by4gIGkgZmluZCB0
+aGF0LCBhdXRvbWF0aWNhbGx5LCBpIGFkZCB0aGUgY29tbWEgYXQgdGhlIGVuZAo+ID4gKGJlY2F1
+c2UgdGhhdCBpcyB0aGUgcGVwOCBzdGFuZGFyZCkgYW5kIG9mIGNvdXJzZSBpdCBjcmVhdGVzIGEg
+c3ludGF4IGVycm9yCj4gPiBiZWNhdXNlIHRoZXJlIGlzIGEgKnNlY29uZCogKHVuZXhwZWN0ZWQp
+IGNvbW1hIGF0IHRoZSBzdGFydCBvZiB0aGUgbmV4dCBsaW5lLgo+IAo+ICAgRnVubnkgdGhpbmcs
+IEkgZGlkIHB1dCB0aGUgY29tbWEgYXQgdGhlIGJlZ2lubmluZyBiZWNhdXNlIEkga2VwdAo+ICAg
+Zm9yZ2V0dGluZyB0byBwdXQgaXQgYXQgdGhlIGVuZC4gSSBmaW5kIGl0IGFsc28gbXVjaCBtb3Jl
+IGNsZWFyIGFzIGl0Cj4gICBtYWtlcyBvbmUgc3RyYWlnaHQgY29sdW1uIGJlbG93IHRoZSBvcGVu
+aW5nIHBhcmVudGhlc2lzIGFuZCBpcwo+ICAgbW9yZSBjb252ZW5pZW50IGZvciByZWN0YW5ndWxh
+ciBzZWxlY3Rpb24uIEFuZCBmaW5hbGx5IGl0IGhlbHBzCj4gICBrZWVwIHRoaW5nIHZlcnRpY2Fs
+bHkgYWxpZ25lZCBzbyB5b3UgaW1tZWRpYXRlbHkgbm90aWNlIGlmIGEKPiAgIGNvbW1hIGlzIG1p
+c3NpbmcgKHRhYnVsYXRpbmcgYXQgdGhlIGVuZCBpcyBwb3NzaWJsZSBidXQgdGVkaW91cwo+ICAg
+YmVjYXVzZSBvZiB0aGUgdmFyaWFibGUgbGVuZ3RoIG9yIHRoZSBhcmd1bWVudHMpLgo+ICAgICBJ
+IHVuZGVyc3RhbmQgaXQgZ29lcyBhZ2FpbnN0IGEgbG90IG9mIGhhYml0cyBhbmQgYXV0b21hdGlz
+bSwKPiAgIGJ1dCBJIHRoaW5rIEkgd2lsbCBrZWVwIGl0Lgo+IAo+ID4gYSBzaW5nbGUgcnVuIG9m
+IGF1dG9wZXA4IHdpbGwgImZpeCIgdGhhdCBob3dldmVyIGFueSBsaW5lcyB0aGF0IGhhdmUgdG8g
+YmUKPiA+IHdyYXBwZWQgKGR1ZSB0byBsZW5ndGggb3Zlci1ydW4pIGNhbiBiZSAibWFzaGVkIiBz
+b21ld2hhdCBpbiBhbgo+ID4gaW5hcHByb3ByaWF0ZSBmYXNoaW9uLCBieSBwdXR0aW5nIGZ1bmN0
+aW9uIHBhcmFtZXRlcnMgb250byBhIHNpbmdsZSBsaW5lCj4gPiAoZm9yY2libHkpLgo+ID4gCj4g
+PiB0aGlzIGlzIGRvbmUgaW4gYSBsb3Qgb2YgcGxhY2VzIGFueXdheSAoc2luZ2xlIGxpbmUgcGVy
+IGZ1bmN0aW9uIHBhcmFtZXRlcikKPiA+IHNvIGl0IG1heSBub3QgYmUgc28gYmFkLgo+ID4gCj4g
+PiBob3dldmVyLi4uIGkgaGF2ZW4ndCBtZW50aW9uZWQgYW55IG9mIHRoaXMgYmVjYXVzZSBpIGZl
+bHQgaXQgd2FzIG1vcmUKPiA+IGltcG9ydGFudCB0byBnZXQgd29ya2luZyAic3R1ZmYiIHdpdGhp
+biB0aGUgY29udGV4dCBvZiB3aGF0IHRpbWUgeW91IGhhdmUKPiA+IGFuZCBhbHNvIGtub3dpbmcg
+dGhhdCB5b3UgaGF2ZS4uLiAibWVtb3Jpc2VkIiB0aGUgcHl0aG9uIGNvZGUgaW4gdGhpcwo+ID4g
+KHVudXN1YWwsIG5vbi1zdGFuZGFyZCkgZm9ybWF0Li4uIGFuZCBtb3ZpbmcgdG8gc3RyaWN0IHBl
+cDggd291bGQgYmUgcXVpdGUKPiA+IGRpc3J1cHRpdmUgYW5kIHRpbWUtY29uc3VtaW5nIChmb3Ig
+eW91IHRvIGdldCB1c2VkIHRvKS4KPiAKPiAgIFllcywgYW5kIHRpbWUgaXMgYWx3YXlzIGF0IGEg
+cHJlbWl1bS4KPiAKPiA+IGl0IHdvdWxkIG5lZWQgY2FyZWZ1bCBzY2hlZHVsaW5nIGJlY2F1c2Us
+IHJlYWxseSwgeW91IG5lZWQgdG8gaGl0IHRoZSBlbnRpcmUKPiA+IGNvZGViYXNlIHdpdGggYSBz
+aW5nbGUgY2FyZWZ1bGx5LXJldmlld2VkIGF1dG9wZXA4IHVwZGF0ZSBhbmQgY29tbWl0LCBhbmQK
+PiA+IG5vdCBkbyAqYW55dGhpbmcqIGVsc2UgaW4gYmV0d2Vlbi4KPiAKPiAgIFllcyBhbmQgcGVy
+Zm9ybSBjb21wbGV0ZSByZWdyZXNzaW9uIHRlc3RzLgo+IAo+ID4gaWYgdGhlcmUgaXMgYSBnb29k
+IHRpbWUgdG8gc2NoZWR1bGUgdGhhdCwgd2UgY2FuIGhhdmUgc2V2ZXJhbCBwZW9wbGUgaGVscAo+
+ID4gb3V0IHdpdGggaXQuCgooSW4gcmVwbHkgdG8gSm9jayBUYW5uZXIgZnJvbSBjb21tZW50ICMx
+MSkKPiAoSW4gcmVwbHkgdG8gTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiBmcm9tIGNvbW1l
+bnQgIzkpCj4gPiBvayAtIGRvbid0IGxlYXZlIGl0IHNldmVyYWwgZGF5cy4gIHdlIGRvbid0IGhh
+dmUgdGltZSBmb3IgImkgY2FuJ3QgZ2V0IGl0IHRvCj4gPiB3b3JrIHRoZXJlZm9yZSBpJ20gZ29p
+bmcgdG8ga2VlcCBxdWlldCBhbmQgc3BlbmQgdGltZSBiZWNhdXNlIGknbQo+ID4gZW1iYXJyYXNz
+ZWQgdG8gYWRtaXQgaSBjYW4ndCBnZXQgaXQgdG8gd29yayIuCj4gCj4gUm9nZXIgdGhhdC4gQnV0
+IEkgY2FuJ3Qgc2F5IEknbSBtdWNoIGVtYmFycmFzc2VkICh0aG91Z2ggbWF5YmUgSSBzaG91bGQg
+YmUpLAo+IGJlY2F1c2UgSSd2ZSBzZWVuIHNldmVyYWwgc3VjaCBiaWcgcHJvamVjdHMsIHdoaWNo
+IHNlZW1lZCBjcnlwdGljIGFuZAo+IGluY29tcHJlaGVuc2libGUgYXQgZmlyc3QsIGJ1dCBvcGVu
+ZWQgdXAgd2l0aCB0aW1lIGFuZCBvYnNlcnZhdGlvbi4gRXhjZXB0Cj4gdGhhdCB0aGlzIHRpbWUg
+SSBzZWVtZWQgdG8gdW5kZXJlc3RpbWF0ZSB0aGUgZG9tYWluLgo+ICAKPiA+ID4gRmlyc3Qgb2Yg
+YWxsLCBJJ20gbm90IHN1cmUgd2hhdCB0aGUgcmVzdWx0IG9mIHRoZSAnZG9BbHUxNi5weScgc2Ny
+aXB0IHNob3VsZAo+ID4gPiBiZSwgYW5kIGhvdyBydW5uaW5nIG9mIHRoZSBzY3JpcHQgcmVsYXRl
+cyB0byBydW5uaW5nICdtYWtlJyB3aXRoIGRpZmZlcmVudAo+ID4gPiB0YXJnZXRzLiAKPiA+IAo+
+ID4geW91IG5lZWQgdG8gcnVuICJtYWtlIGx2eCIgdGhlbiAibWFrZSB2aWV3Ii4gIG5vdGhpbmcg
+ZWxzZTogYWJzb2x1dGVseQo+ID4gbm90aGluZyBlbHNlLgo+ID4gCj4gPiB5b3UgKm1pZ2h0KiBo
+YXZlIHRvIHJ1biAibWFrZSBjbGVhbiIgaWYgc29tZXRoaW5nIGhhcyBub3Qgd29ya2VkIGJlY2F1
+c2UKPiA+IG9jY2FzaW9uYWxseSB0aGUgaW50ZXJtZWRpYXJ5IGZpbGVzIGFyZSBtb2RpZmllZCBz
+dWNoIHRoYXQgb24gc3Vic2VxdWVudAo+ID4gcnVucyB0aGV5IGFmZmVjdCBvbmdvaW5nIG91dHB1
+dC4KPiAKPiBXYWl0IGEgbWludXRlLCBMdWtlLiBJJ20gZG9pbmcgJ21ha2UgbHZ4JyBhbmQgJ21h
+a2UgdmlldycsIGFuZCBpdCBnaXZlcyBtZQo+IHByZXR0eSBwaWN0dXJlIGFuZCBubyBlcnJvcnMu
+IEJ1dCBJIGFsc28gcnVuIHRoZSBzY3JpcHQgaXRzZWxmCj4gKCdkb0FsdTE2LnB5JyksIGJlY2F1
+c2UgSSByZW1lbWJlciB5b3Ugc2FpZCBzb21ld2hlcmUgdGhhdCB3ZSBtdXN0IGJlIGFibGUKPiB0
+byBnZXQgdGhlIHJlc3VsdHMgd2l0aG91dCBHVUkuIFRoYXQncyB3aGVyZSBJIGdldCB0aGUgJ05v
+IHRyYWNrIG5lYXIgYXhpcycKPiBlcnJvci4gU2hvdWxkIEkgcnVuIGl0IG9yIG5vdD8KCiAgWW91
+IGNhbm5vdCAoeWV0KSBydW4gdGhlIHNjcmlwdCBkaXJlY3RseS4gSG93ZXZlciB0byBydW4gaW4g
+dGV4dCBtb2RlOgogIHlvdSBjYW4gdXNlOgogICAgY2d0IC0tc2NyaXB0PWRvQWx1MTYKICAoYXNz
+dW1pbmcgdGhlIGVudmlyb25tZW50IGFzIGJlZW4gY29ycmVjdGx5IHNldCkKCiAgSSB3aWxsIG1h
+a2UgdGhlIG5lY2Vzc2FyeSBjaGFuZ2VzIHNvIHRoZSBzY3JpcHQgY2FuIGJlIHJ1biBieSBpdHNl
+bGYKICAobmVlZCB0byByZXF1ZXN0IGNvbmZpZ3VhdGlvbiBsb2FkaW5nKS4KCi0tIApZb3UgYXJl
+IHJlY2VpdmluZyB0aGlzIG1haWwgYmVjYXVzZToKWW91IGFyZSBvbiB0aGUgQ0MgbGlzdCBmb3Ig
+dGhlIGJ1Zy4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
+bGlicmUtcmlzY3YtZGV2IG1haWxpbmcgbGlzdApsaWJyZS1yaXNjdi1kZXZAbGlzdHMubGlicmUt
+cmlzY3Yub3JnCmh0dHA6Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcvbWFpbG1hbi9saXN0aW5mby9s
+aWJyZS1yaXNjdi1kZXYK