Electronics > FPGA

FPGA VGA Controller for 8-bit computer

<< < (703/725) > >>


--- Quote from: BrianHG on August 06, 2022, 08:43:49 pm ---For now, that sounds fine, though lack of bass.
The question is how does it sound on real hardware?
--- End quote ---

I can't compare unfortunately, certainly not at the moment, as digging out the old sound card requires setting up all the old (version 1) uCOM cards, as the latest ones aren't compatible.  I don't have the time to do that this weekend, and I'll be away for a week from Monday, so it'll be a while before I can even think about it.

--- Quote from: BrianHG on August 06, 2022, 08:43:49 pm ---Since you do not have a HDMI capture card, we cannot hear if there supposed to be any bass/low frequencies, or, is it the DC filters?

Anyways, tonight I will do my audio mixer / filter module (no floating point 20*log(1/255) or 10^((Volume/20) *(2^DAC_BITS)) calculations to worry about...), so thing should be a bit easier.  I will also see about getting the 'Line Out' working.  If so, make sure you have headphones, then a 3.5mm - 3.5mm line patch cable so it may be possible to sample the stereo audio direct from your PC's line in and you can send us a full quality .mp3.
--- End quote ---

I certainly have some 3.5-3.5mm patch cables knocking about somewhere, so an MP3 shouldn't be outside the realms of possibility once the DECA's DAC is running sound through the line out.

Ok, 1 module left to do.  Here is the specification of our Github Repo:

--- Code: ---// ********************************************************************************************************************************
// YM2149_PSG_system Programmable Sound Generator based on Jose Tejada's GitHub repository [url]https://github.com/jotego/jt49.[/url]
// Enhancements by BrianHG    : [url]https://github.com/BrianHGinc[/url]
//           and Nockieboy    : [url]https://github.com/nockieboy[/url]
// You can also find use here : [url]https://www.eevblog.com/forum/fpga/[/url]
// ***************************************************
// New included source code:
// ***************************************************
// BHG_clock_fp_div.sv      -> Precision floating point clock divider to generate any desired system clock down to the Hz.
// I2S_transmitter.sv       -> I2S digital audio transmitter for all Audio DACs/Codecs and HDMI transmitters.
// BHG_jt49.v               -> An enhanced modified version of the original jt49.v offering higher # of bits for the sound output channels.
// BHG_jt49_exp_tablegen.v  -> A generator the precision volumetric tables.  Generates the BHG_jt49_exp_lut.vh file.
// BHG_jt49_exp_lut.vh      -> The parameter table generated after Sim running the BHG_jt49_exp_tablegen.v.
// BHG_jt49_exp.v           -> A replacement for the original jt49_exp.v using the tables in BHG_jt49_exp_lut.vh.
// BHG_jt49_filter_mixer.sv -> Offers a programmable channel mixing levels (use 2 for custom stereo), DC filter with clamp, and treble control.
// Enhancements include:
// ----------------------
// Stereo sound with control registers for channel mixing volume and phase.
// Registers for Treble and Bass adjustments.
// Smart DC filtering allowing lower frequency output while managing peaks and switch on/off pops when necessary.
// Improved precision 8 thru 14 bit exponential DAC support.  (10 bit almost exactly replicates the YM2149 normalized output voltage).
// Precision floating point system clock divider offering parameter select-able PSG reference frequencies with accuracy down to the Hz.
// Integrated standard I2S transmitter output with resampling & floating point system clock divider offering DAC Khz settings down to the Hz.
// Functional simulation setup for Modelsim, with example YM2149 presets and full outputs with analog waveforms.
// *** Simulation also includes a switch to run Jose Tejada's original jt49 project for direct comparison.
// ********************************************************************************************************************************
//Only include one of the following:
`include "YM2149_PSG_system.sv" // This will simulate the new BrianHG & Nockieboy YM2149_PSG_system.
// or:
//`include "YM2149_PSG_jt49.sv"   // This will simulate the original jt49 YM2149 PSG source code
//                              // from Jose Tejada's GitHub repository [url]https://github.com/jotego/jt49[/url]
//                              // *** Remember, when using, parameter YM2149_DAC_BITS must be set to 8!
//                              // Patched files: 'jt49_dly.v', found a few bugs, see lines:
//                              // 29, 30, 31, & 39.
//                              // Also found clip-inversion overflow bug in jt49_mave.v & jt49_dcrm2.v, which the
//                              // DC filter seems to sometimes patch.  Though this may be looked at by Jose Tejada's,
//                              // it is no longer in use because of the new 'BHG_jt49_filter_mixer.sv' replacement.

--- End code ---

Note that the ADDR input has been changes from 4bit to 8bit.  This way, you can add more YM2149 PSGs if you like, and I have reserved upper addresses to allow controls for our stereo mixer filter.  (LOL, place 10 of them and get 30 channel audio.  Can the Z80 fill all those registers fast enough?)


--- Quote from: BrianHG on August 06, 2022, 08:43:49 pm ---For now, that sounds fine, though lack of bass.
The question is how does it sound on real hardware?
Since you do not have a HDMI capture card, we cannot hear if there supposed to be any bass/low frequencies, or, is it the DC filters?
--- End quote ---

Yep, definitely lacking a little bass.  Really need to hear it from the DAC on the DECA first, but it certainly seems to be lacking punch.

So, what do I need to do next?  I'll set the github repo up once the PSG work is done, I think.

     I attached a test which copies the audio to both HDMI and the green line out jack.

     Now, the engineers who made the ArrowDECA wired that jack to the Line out outputs of the audio codec instead of the high powered Headphone out pins.  This means headphone may not sound proper, but, it will have no problem feeding an audio amp or the line-in of you PC's sound card.

     Please test and let me know if it works.

     Not included, I've done a lot of work on the YM2149 module and only have my filters left to do.  If the attached project works, I'll incorporate my first simple test filter.

     As for the work done so far, here are the latest modules I've created and released on their own:

Verilog floating point clock divider:

And, I2C initializer with RS232 monitor/debugger: (used in the attached code.)

I'm getting no video out from the new project above?  Haven't had a look for a patch cable yet, just thought I'd build the project and test that it works as expected in all aspects other than audio, but I'm getting no signal on the TV.

It looks like you've moved the content of I2C_HDMI_Config into GPU_DECA_DDR3_top, but as far as I can see you've got the right HDMI mode selected, so not sure just yet what's going wrong.


[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Go to full version