名稱:Quartus簡易電子琴電路設計verilog代碼仿真
軟件:Quartus
語言:Verilog
代碼功能:
簡易電子琴電路設計要求:
輸入量為8個按鍵,每個按鍵對應一個音階;輸出量為 SPEAKER。
當其中一個按鍵按下時,輸出產生特定頻率的音階方波信號。
假設輸入的時鐘頻率為1MHz。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
演示視頻:
設計文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. Testbench(仿真文件)
6. 仿真圖
部分代碼展示:
//電子琴設計 module?electronic_organ( input?clk,//1MHz input?key_1,//按鍵1 input?key_2,//按鍵2 input?key_3,//按鍵3 input?key_4,//按鍵4 input?key_5,//按鍵5 input?key_6,//按鍵6 input?key_7,//按鍵7 input?key_8,//按鍵8 output?SPEAKER//音頻輸出 ); parameter?div_1=12'hEF0;//音階1對應分頻值 parameter?div_2=12'hD4F;//音階2對應分頻值 parameter?div_3=12'hBDA;//音階3對應分頻值 parameter?div_4=12'hB31;//音階4對應分頻值 parameter?div_5=12'h9F7;//音階5對應分頻值 parameter?div_6=12'h8E0;//音階6對應分頻值 parameter?div_7=12'h7E8;//音階7對應分頻值 parameter?div_8=12'h776;//音階8對應分頻值 //分頻 reg?[11:0]?div_num=12'd0;//分頻值 always@(posedge?clk) if(key_1==1)//按鍵1按下 div_num<=div_1;//音階1對應分頻值 else?if(key_2==1)//按鍵2按下 div_num<=div_2;//音階2對應分頻值 else?if(key_3==1)//按鍵3按下 div_num<=div_3;//音階3對應分頻值 else?if(key_4==1)//按鍵4按下 div_num<=div_4;//音階4對應分頻值 else?if(key_5==1)//按鍵5按下 div_num<=div_5;//音階5對應分頻值 else?if(key_6==1)//按鍵6按下 div_num<=div_6;//音階6對應分頻值 else?if(key_7==1)//按鍵7按下 div_num<=div_7;//音階7對應分頻值 else?if(key_8==1)//按鍵8按下 div_num<=div_8;//音階8對應分頻值 else div_num<=12'd0; //分頻 reg?[11:0]?div_cnt=12'd0;//分頻計數器 always@(posedge?clk) if(div_cnt>=div_num)//計數最大值后回零 div_cnt<=12'd0; else div_cnt<=div_cnt+12'd1;//計數
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=388
閱讀全文