Dig through the synthesis log (*.map.rpt) a bit and look for warnings
that indicate undriven nets.  Sadly, most tool chains consider
undriven signals a warning vs. an error, so they'll happily optimize
away huge chunks of your design.  A typical warning would look
something like:

Warning (10541): VHDL Signal Declaration warning at
HD_Core_CycloneV_pipen1b.vhd(45): used implicit default value for
signal "clk250_out" because signal was never assigned a value or an
explicit default value. Use of implicit default value may introduce
unintended design optimizations.

In vim, I use the regex: ^Warning.*$ which highlights the whole line
(if you're in GUI mode).

Note you will see lots of other warnings, most of which are probably
OK.  In particular, the ever present:

Warning (10036): Verilog HDL or VHDL warning at
HD_Core_CycloneV.vhd(471): object "HDMI_clk" assigned a value but
never read

...is (usually) perfectly OK, it's similar to an unused variable in
"C".  This _might_ be an actual error (if the signal was supposed to
go somewhere) but is typically OK.

On 8/20/2019 9:09 AM, justin White wrote:
> Thanks for the advice Charles. Actually I use this project:
> https://github.com/machinekit/mksocfpga/tree/master/HW/QuartusProjects/DE10_Nano_FB_Cramps
> 
> Michael explained it has more functionallity than the DB25 project, so I've 
> never tried the DB25.
> 
> Not really up on my git stuff, I forked master and slapped my config files 
> in, like I said these are modifications of the "3x24_cap_enc" config.
> https://github.com/blazini36/mksocfpga
> 
> The pin assignments are so different from anything else I can't imagine 
> it's looking at another pinfile, it's likely I just didn't modify something 
> I probably should have. I'll try to look into your suggestions a bit later.
> 
> 
> On Tuesday, August 20, 2019 at 9:41:57 AM UTC-4, Charles Steinkuehler wrote:
>>
>> It sounds like the synthesis tools are optimizing away the stepgen 
>> logic, almost certainly because of an issue with signal connectivity 
>> to the top level I/O pins.  The actual step accumulator is still 
>> generated because it's value gets read back via the register 
>> interface, but the steptables are only needed to generate the output 
>> signals so they're getting optimized away. 
>>
>> Is your project checked into github somewhere I can grab it?  I can 
>> try building in the desktop Quartus tools and see what's wrong. 
>>
>> Otherwise, double-check the pin assignments the top-level I/O port 
>> definitions, and make sure the physical I/O pins are properly 
>> connected to the hm2 instance. 
>>
>> I took a quick look at the project I think you're using: 
>>
>>
>> https://github.com/machinekit/mksocfpga/blob/master/HW/QuartusProjects/DE10_Nano_SoC_FB_DB25/
>>  
>>
>> ...and the top-level stuff looks OK at first glance.  The important 
>> part is the use of the correct PIN_<config> library, which gets called 
>> out here: 
>>
>>
>> https://github.com/machinekit/mksocfpga/blob/master/HW/QuartusProjects/DE10_Nano_SoC_FB_DB25/hostmot2_cfg.vhd.in#L74
>>  
>>
>> Make sure in your working copy the hostmot2_cfg.vhd file is getting 
>> generated with the correct name in the "use" line, and make sure the 
>> pin file you're including in the project has proper values for IOWidth 
>> and IOPorts. 
>>
>> You can dig through the first part of the compile log messages to 
>> verify the correct PIN file is _really_ getting analyzed and not some 
>> other file. 
>>
>> I'm also not sure how mixing the system verilog config files with VHDL 
>> packages works (I know just enough Verilog to generally be able to 
>> transcode it to VHDL).  If there's any problems with that, Michael B. 
>> will have to comment. 
>>
>> On 8/20/2019 8:04 AM, justin White wrote: 
>>> I deleted my mksocfpga directory and re-pulled it and I get the same 
>>> results after building the .rbf. 
>>>
>>> Still not quite sure what's going on, though I did catch something in 
>>> Quartus. Using "0A" for stepgens in the pinfile  creates 10 stepgens, 
>> but 
>>> only the first 4 seem to be complete. #4 (the 5th stepgen) when expanded 
>>> shows blank resources for "SRL16E:\steptable:0:asr16e", but does show 
>>> resources for "SRL16E:\steptable:1:asr16e". On every stepgen after they 
>> are 
>>> both blank which looks like it mimics exactly the problem I'm having. If 
>>  "steptable:1" 
>>> relates to the dir pin and "steptable:0" relates to the step pin, it 
>>> explains why I have a working direction pin on #4 but no step pin, and 
>> #5 
>>> doesn't work at all. In this case I'd assume no later stepgens would 
>> work. 
>>>
>>> I'm not really sure how Quartus works with the configs. I'm just 
>> dropping 
>>> the pinfile I made into the 
>>> '../mksocfpga/HW/hm2/config/DExx_Nano_xxx_Cramps' directory and renaming 
>>> the "atlas_3x24_cap_enc.sv" to match my pinfile, which is what I do 
>> with 
>>> the mksocfpga docker build. I don't specify a pinfile or anything when 
>>> running the analysis in Quartus, yet it does seem to catch the changes 
>> I've 
>>> made to that specific pinfile even though I don't specify anything in 
>>> Quartus, I just load the "DE10_Nano_FB_Cramps.qpf" file. 
>>>
>>> Pics, QP1 shows all 10 stepgens, QP2 shows the difference between the 
>>> working #3 stepgen (0-3 all look the same) and #4 and #5 where the 
>> problem 
>>> starts. "combinational ALUTS" and every feild after is blank. 
>>>
>>> [image: QP1.png] 
>>>
>>> [image: QP2.png] 
>>>
>>>
>>>
>>>
>>>
>>> On Monday, August 19, 2019 at 5:00:11 PM UTC-4, Michael Brown wrote: 
>>>>
>>>> Thanx for the clairifying Charles, I doublechecked tha line and it 
>> reads: 
>>>>         (StepGenTag,    x"02",  ClockLowTag,    x"06",   
>>>> StepGenRateAddr&PadT,       StepGenNumRegs,     x"00", 
>>  StepGenMPBitMask), 
>>>>
>>>> So that should be ok... 
>>>>
>>>> On Monday, 19 August 2019 22:37:42 UTC+2, Charles Steinkuehler wrote: 
>>>>>
>>>>> Actually, the NumInstances field of the ModuleRecord is defined as an 
>>>>> 8 bit std_logic_vector: 
>>>>>
>>>>>
>>>>>
>> https://github.com/machinekit/mksocfpga/blob/master/HW/hm2/config/IDROMConst.vhd#L839
>>  
>>>>>
>>>>> In VHDL, it should throw an error if you use 06 for this value (VHDL 
>>>>> won't convert an integer value into a std_logic_vector without some 
>>>>> sort of type conversion). 
>>>>>
>>>>> If you meant that you are using x"06" (an 8-bit hexadecimal value), 
>>>>> that should work fine, but you will only get 6 stepgens instead of the 
>>>>> 10 you'd get with x"0A". 
>>>>>
>>>>> On 8/19/2019 3:19 PM, Michael Brown wrote: 
>>>>>> No changing numinst should work just fine 
>>>>>>
>>>>>> On Monday, 19 August 2019 18:05:28 UTC+2, justin White wrote: 
>>>>>>>
>>>>>>> One thing I noticed, I recall seeing this the first time I started 
>>>>> messing 
>>>>>>> with the .vhd's. All of the pinfiles in the DExx_Nano_xxx_Cramps 
>>>>> config use 
>>>>>>> this line for stepgens 
>>>>>>>
>>>>>>>         (StepGenTag,    x"02",  ClockLowTag,    x"0A", 
>>>>>  StepGenRateAddr& 
>>>>>>> PadT,       StepGenNumRegs,     x"00",  StepGenMPBitMask), 
>>>>>>>
>>>>>>> The NumInst being "0A" looked a little strange to me so I changed it 
>>>>> to 
>>>>>>> the actual number (06) for every pinfile I've been working with. 
>> Could 
>>>>> that 
>>>>>>> be causing an issue? 
>>>>>>>
>>>>>>> On Monday, August 19, 2019 at 11:33:29 AM UTC-4, justin White wrote: 
>>>>>>>>
>>>>>>>> On Monday, 19 August 2019 13:24:22 UTC+2, Michael Brown wrote: 
>>>>>>>>>>
>>>>>>>>>> I have an older config that has worked with 8 stepgens: 
>>>>>>>>>> hm2_soc_ol config line here: 
>>>>>>>>>> < 
>>>>>
>> https://github.com/the-snowwhite/Hm2-soc_FDM/blob/master/Cramps/PY/Mibrap-X_hm3_fdm-soc/fdm/config/motion.py#L15>
>>  
>>
>>>>>
>>>>>>>>>> Have you tried with: 
>>>>>>>>>>   num_stepgens=6  in the hm2_soc_ol config line ? 
>>>>>>>>>>
>>>>>>>>>
>>>>>>>> Yes, my  config line is: 
>>>>>>>> [HOSTMOT2] 
>>>>>>>> DRIVER=hm2_soc_ol 
>>>>>>>> BOARD=5i25 
>>>>>>>> CONFIG="num_encoders=6 num_stepgens=6" "enable_adc=1" 
>>>>>>>> DEVNAME=hm2-socfpga0 already_programmed=1 
>>>>>>>>
>>>>>>>> If the stepgens=6 wasn't there hm2 wouldn't instantiate them in 
>> HAL. 
>>>>> They 
>>>>>>>> are actually completely visible and HAL seems to think they're 
>>>>> working. I 
>>>>>>>> dug up one of my first test hal files and #4 did in fact work with 
>>>>> that but 
>>>>>>>> I had much less else going on. 
>>>>>>>>
>>>>>>>> I'm not terribly familiar with Quartus. I usually just do as in the 
>>>>>>>> readme https://github.com/the-snowwhite/mksocfpga to build the 
>>>>> firmware. 
>>>>>>>> I did have an issue before where it was building firmware that 
>>>>> wouldn't 
>>>>>>>> boot, deleting mksocfpga and pulling it again fixed that. That may 
>>>>> even 
>>>>>>>> have had something to do with trying to open the project 
>> previously. 
>>>>> Ill 
>>>>>>>> try re-pulling it and see what happens. 
>>>>>>>>
>>>>>>>> I ran the analysis in in QP and this is what  I'm seeing with the 
>>>>>>>> stepgens: 
>>>>>>>>
>>>>>>>> [image: QP.png] 
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Monday, August 19, 2019 at 7:46:58 AM UTC-4, Michael Brown 
>> wrote: 
>>>>>>>>>
>>>>>>>>> Quartus Update: 
>>>>>>>>> After compiling (the default DE10_Nano_FB_Cramps project) Notice 
>>>>> that 
>>>>>>>>> all 9 (0-8) stepgens instansiated in the pin file have a (not 
>> null) 
>>>>> sized 
>>>>>>>>> SRL16E:\steptable:0:asr16e instance: 
>>>>>>>>>
>>>>>>>>> [image: Quartus_DE10_Nano_FB_Default_Num-Stepgens_Compiled.png] 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Monday, 19 August 2019 13:24:22 UTC+2, Michael Brown wrote: 
>>>>>>>>>>
>>>>>>>>>> I have an older config that has worked with 8 stepgens: 
>>>>>>>>>> hm2_soc_ol config line here: 
>>>>>>>>>> < 
>>>>>
>> https://github.com/the-snowwhite/Hm2-soc_FDM/blob/master/Cramps/PY/Mibrap-X_hm3_fdm-soc/fdm/config/motion.py#L15>
>>  
>>
>>>>>
>>>>>>>>>> Have you tried with: 
>>>>>>>>>>   num_stepgens=6  in the hm2_soc_ol config line ? 
>>>>>>>>>>
>>>>>>>>>> Also You can look in the Compiled (Or after analysis & 
>> elaboration) 
>>>>>>>>>> Quartus project and see how many stepgens are elaborated like in 
>>>>> below pic: 
>>>>>>>>>>
>>>>>>>>>> [image: Quartus_Num_Stepgens.png] 
>>>>>>>>>>   
>>>>>>>>>>
>>>>>>>>>> On Monday, 19 August 2019 00:31:53 UTC+2, justin White wrote: 
>>>>>>>>>>>
>>>>>>>>>>> The hal component did work fine then my friend "cleaned it up" 
>> and 
>>>>> it 
>>>>>>>>>>> acts weird when you enable the filter. Could just remove the 
>>>>> filter pin and 
>>>>>>>>>>> post it but it is rather handy. 
>>>>>>>>>>>
>>>>>>>>>>> I've been tracking down an issue with the stepgens and depending 
>>>>> on 
>>>>>>>>>>> what the issue is it may be part of the smart serial issue. I 
>> have 
>>>>> 4 out of 
>>>>>>>>>>> 6 stepgens that work, on my 5th stepgen only the direction pin 
>>>>> works, not 
>>>>>>>>>>> the step pin. Neither work on the 6th stepgen.  I disabled SS 
>> for 
>>>>> the time 
>>>>>>>>>>> being but it was using consecutive pins with the 5th and 6th 
>>>>> stepgens. It 
>>>>>>>>>>> was difficult to see what was going on until I got my GUI setup. 
>>>>> Now I can 
>>>>>>>>>>> see that in hal it is actually working and I'm getting feedback 
>> to 
>>>>> the PID 
>>>>>>>>>>> loop but the pins of the Nano itself do not electrically do 
>>>>> anything, I can 
>>>>>>>>>>> verify that with my scope. Thinking maybe I damaged the GPIO 
>> pins 
>>>>>  from all 
>>>>>>>>>>> the hardware swapping I've been doing, I picked up another DE10 
>>>>> Nano and 
>>>>>>>>>>> the same thing happens. I tried swapping stepgen instance 0,1 
>> for 
>>>>> 4,5 in 
>>>>>>>>>>> the .vhd and rebuilt the firmware without changing any hal 
>>>>> configuration 
>>>>>>>>>>> and stepgens 4 and 5 work fine if they are controlling different 
>>>>> GPIO pins 
>>>>>>>>>>> without making any hal changes. I jumped the GPIO pins for a 
>>>>> working 
>>>>>>>>>>> stepgen to the PCB pins I use for 4 and 5 and the interface 
>>>>> hardware works 
>>>>>>>>>>> fine that way. 
>>>>>>>>>>>
>>>>>>>>>>> So the conclusion I'm drawing is that there's an issue with the 
>>>>>>>>>>> firmware that's getting built. hm2 thinks all 6 stepgens are 
>> there 
>>>>> but 
>>>>>>>>>>> there is only 4 1/2 stepgens actually working. I seem to recall 
>>>>> there is a 
>>>>>>>>>>> parameter that has to change to add a certain amount of certain 
>>>>> pin types, 
>>>>>>>>>>> but I didn't think it applied in this case and I'm not sure what 
>>>>> it is. 
>>>>>>>>>>>
>>>>>>>>>>> My current VHD with SS disabled attached 
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Saturday, August 17, 2019 at 6:40:07 AM UTC-4, Michael Brown 
>>>>> wrote: 
>>>>>>>>>>>>
>>>>>>>>>>>> OK back to being able to be online with my workstation: 
>>>>>>>>>>>> I have allways had a fight setting up proper display 
>> resolutions 
>>>>> on 
>>>>>>>>>>>> the altera soc's however I can give you some key notes: 
>>>>>>>>>>>> In qsys there are 3 cores to consider: 
>>>>>>>>>>>> For display timing settings: 
>>>>>>>>>>>> alt_vip_vfr_hdmi   (framereader) 
>>>>>>>>>>>>
>>>>>>>>>>>> alt_vip_itc_0      (Clocked video output) 
>>>>>>>>>>>>
>>>>>>>>>>>> The display core clock itself: 
>>>>>>>>>>>> pll_lcd            --> lcd_clk 
>>>>>>>>>>>>   
>>>>>>>>>>>>
>>>>>>>>>>>>> 1600x900 would allow me to test it out on my mill and I might 
>>>>> have a 
>>>>>>>>>>>>> use for 800x480. I didn't realize the resolution was fixed, my 
>>>>> 1080P 
>>>>>>>>>>>>> monitors don't have a problem displaying 1024x768, all my 
>> other 
>>>>> monitors 
>>>>>>>>>>>>> do. I suppose in a real usage scenario I'd have to look 
>> further 
>>>>> into your 
>>>>>>>>>>>>> previous reply and try to figure out how to set a resolution 
>> for 
>>>>> whatever 
>>>>>>>>>>>>> monitor I intended to use. 
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Sadly there are currently no presets for these 2 resolutions 
>> for 
>>>>> the 
>>>>>>>>>>>> framebuffer related cores (presets are found in qsys view 
>> menu), 
>>>>> as I 
>>>>>>>>>>>> havent had use of these resolutions myself (in newer time). 
>>>>>>>>>>>> And I also have no (qsys) formula other than intuitive guess 
>>>>> work..... 
>>>>>>>>>>>>
>>>>>>>>>>>> Last there is the Devicetree entry this is the current one: 
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>
>> https://github.com/the-snowwhite/soc-image-buildscripts/blob/master/SD-Image-Gen/patches/4.9.76-ltsi-rt/current/0012-Added-DE-10-Nano-with-uio-with-without-framebuffer-1.patch#L291
>>  
>>>>>>>>>>>>
>>>>>>>>>>>> This entry: 
>>>>>>>>>>>>
>>>>>>>>>>>> vip@0x100031000 { 
>>>>>>>>>>>> compatible = "altr,vip-frame-reader-1.0", 
>>>>> "ALTR,vip-frame-reader-9.1"; 
>>>>>>>>>>>> reg = <0x00000001 0x00031000 0x00000080>; 
>>>>>>>>>>>> max-width = <1024>; 
>>>>>>>>>>>> max-height = <768>; 
>>>>>>>>>>>> bits-per-color = <0x8>; 
>>>>>>>>>>>> colors-per-beat = <0x4>; 
>>>>>>>>>>>> beats-per-pixel = <0x1>; 
>>>>>>>>>>>> mem-word-width = <0x80>; 
>>>>>>>>>>>> }; 
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Friday, 9 August 2019 03:55:13 UTC+2, justin White wrote: 
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Tuesday, August 6, 2019 at 1:07:38 PM UTC-4, Michael Brown 
>>>>> wrote: 
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Not very easy from my cell phone here however: 
>>>>>>>>>>>>>> In qsys there are 2 instances where you set up the timings 
>> for 
>>>>> the 
>>>>>>>>>>>>>> screen monitor. There should be some saved setups HD etc. 
>>>>> Lastly you need 
>>>>>>>>>>>>>> to place the correct screen settings in the device tree there 
>>>>> is a HD 
>>>>>>>>>>>>>> example there too. 1920 x1080. Sorry for not being online 
>>>>> atm... 
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Gonna Give this a try soon as I get a chance. Waiting for my 
>>>>> friend 
>>>>>>>>>>>>> to correct a minor issue with the time based filter in the RT 
>>>>> hal component 
>>>>>>>>>>>>> he whipped up for me for the ADC then I'll post it up here. 
>>>>> Maybe you can 
>>>>>>>>>>>>> include it in your project if you think it's useful. It 
>>>>> certainly is for 
>>>>>>>>>>>>> someone like me who only works with hal. 
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Well It would be nice with a hal rt component for calculating 
>>>>>>>>>>>> temperature readings based on ntc probes instead of the python 
>>>>> user 
>>>>>>>>>>>> component hal_temp_atlas I derived from the hal_temp_bbb .... 
>> :-) 
>>>>>>>>>>>>   
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> -- 
>>>>> Charles Steinkuehler 
>>>>> cha...@steinkuehler.net 
>>>>>
>>>>
>>>
>>
>>
>> -- 
>> Charles Steinkuehler 
>> cha...@steinkuehler.net <javascript:> 
>>
> 


-- 
Charles Steinkuehler
char...@steinkuehler.net

-- 
website: http://www.machinekit.io blog: http://blog.machinekit.io github: 
https://github.com/machinekit
--- 
You received this message because you are subscribed to the Google Groups 
"Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to machinekit+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/machinekit/e6aaed2c-dba5-7607-dc1a-adcf63b2f421%40steinkuehler.net.

Reply via email to