--- Quote Start ---
Thanks for the replies. Your right, i messed the copy/pasting up. However, my problem still stands.
As soon as i change the multiply by SW to a binary value eg ("0000000000111111") then the volume changes as expected.
--- Quote End ---
Since you later refer to a "top level in block diagram format" this implies to me that there is some other level to the hierarchy. So one suggestion would be to connect "0000000000111111" on that level to the SW input of the volume entity and see if it still works.
Some other easy thing to check are:
- You should have a timing path from each of the SW input pins to each of the output pins. If not, then it suggests you're not connecting SW correctly to your 'volume' entity.
- Take a look at the post-route netlist viewer and see if there is a logic path all the way from the SW input pins to all of the output pins
--- Quote Start ---
I've done things more complicated than this but for some reason i just cant see whats going wrong here. There is no audio output suggesting all the samples are being multiplied by zeros. The switches are connected on the top level in block diagram format. SW[15..0]
--- Quote End ---
The other thing that it suggests is that SW is not really connected. This could be because of pin assignments being wrong (as you already checked) or because their is an error in the top level connection to this entity. Since you've probably already eyeballed the connection and not found anything, the next step would be to look at output reports to see if things that should be true really are (i.e. the timing paths and netlist view that I mentioned).
Kevin Jennings