HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
Elphel
x393
Verilog2016–2016
Elphel / x393

x393

mirror of https://git.elphel.com/Elphel/x393

2Distinct people
3Mentions
0Explicit recommenders
40GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

mirror of https://git.elphel.com/Elphel/x393

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by day3 dated mentions

Observed mentions: 2016-03-21 00:26:01 UTC to 2016-04-01 19:26:32 UTC.

012016-03-21 00:00:00 UTC to 2016-03-22 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMar 212016-03-22 00:00:00 UTC to 2016-03-23 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2016-03-23 00:00:00 UTC to 2016-03-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-03-24 00:00:00 UTC to 2016-03-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-03-25 00:00:00 UTC to 2016-03-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-03-26 00:00:00 UTC to 2016-03-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsMar 262016-03-27 00:00:00 UTC to 2016-03-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-03-28 00:00:00 UTC to 2016-03-29 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-03-29 00:00:00 UTC to 2016-03-30 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-03-30 00:00:00 UTC to 2016-03-31 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-03-31 00:00:00 UTC to 2016-04-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-04-01 00:00:00 UTC to 2016-04-02 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsApr 1

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Mar 212016-03-21 00:00:00 UTC2016-03-22 00:00:00 UTC101
Mar 222016-03-22 00:00:00 UTC2016-03-23 00:00:00 UTC101
Mar 232016-03-23 00:00:00 UTC2016-03-24 00:00:00 UTC000
Mar 242016-03-24 00:00:00 UTC2016-03-25 00:00:00 UTC000
Mar 252016-03-25 00:00:00 UTC2016-03-26 00:00:00 UTC000
Mar 262016-03-26 00:00:00 UTC2016-03-27 00:00:00 UTC000
Mar 272016-03-27 00:00:00 UTC2016-03-28 00:00:00 UTC000
Mar 282016-03-28 00:00:00 UTC2016-03-29 00:00:00 UTC000
Mar 292016-03-29 00:00:00 UTC2016-03-30 00:00:00 UTC000
Mar 302016-03-30 00:00:00 UTC2016-03-31 00:00:00 UTC000
Mar 312016-03-31 00:00:00 UTC2016-04-01 00:00:00 UTC000
Apr 12016-04-01 00:00:00 UTC2016-04-02 00:00:00 UTC101

What Hacker News says

3 sources
Yes, I'm guilty in DRY violation and I mentioned it in the post - I still manually translate Verilog to Python when go from simulation/debugging to hardware testing/debugging. And we are looking to use a more productive way to do this - write the simulation code (that replaces the CPU activity of the real hardware) in the programming language (Python) rather than switching to System Verilog that is somewhat in between the hardware description language and a software programming one. That is in our future plans, not there yet. Other than that - DRY is always in our agenda, and there is only one place that holds the parameters/ preprocessor macros that define the hardware and its software interface. Python code reads Verilog files and extracts all the parameter names and values (names/types are automatically added to the Python source to al
Read the rest
low checking). That Python code allows to run tests on the target system, do some calibration and save results in the same Verilog parameters format (same as here https://github.com/Elphel/x393/blob/master/includes/x393_cur... , just no header). Same program uses Verilog data to export C files, it uses hand-crafted code to allow flexibility - it is not always possible to fit everything in the same format, but here the focus is again on the DRY - new code to do what is different, and use common code that processes multiple data items as much as possible. And when it is not - provide checks to catch differences when you do have to repeat yourself. Only part of the Python code is a "translation" of the Verilog tests (and this we plan to eliminate in the future), the rest is just a continuation of the project, and when writing (not just running) that code I'm re-using data exported from the Verilog (and re-exported when there are changes that influence data). Same with C - code continues the project, re-using Verilog+Python data.
In Synchronizing Verilog, Python and C
Scott, you are right, and I try to do it that way (there are many registers in the design with "_ram" suffix. But I did have some problems when Vivado incorrectly inferred small non-registered RAM as Block RAM. I was able to modify the design (moving registers from inputs to outputs - https://github.com/Elphel/x393/blob/master/x393_sata/host/el... ) to force Vivado to infer correctly, but still have suspicion that it may not always be the case. So I used wrapper modules for Block RAMS with direct instances, they can be replaced as you suggested.
In Free FPGA: Reimplement the primitives models
A more productive route might be to port the camera project [1] (for which the models are being requested) to use the Lattice ICE series of FPGAs and use the open source Project ICEstorm tool chain [2]? That would have the dual effect of further developing the free tool chain, and sending a (small) signal to Xilinx that if they don't take Free Software seriously they will start to lose customers. [1] https://github.com/Elphel/x393 [2] http://www.clifford.at/icestorm/ ----- edit: change "GPL licensed" to "open source", as a variety of licenses are used.
In Free FPGA: Reimplement the primitives models

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.