(求助)請問DE2-70版子 音樂合成器
您好? 我是剛學(xué)習(xí)VERILOG的新手? 我剛碰到一個(gè)專案 是DE2-70版子裡的 DE2_70_Music_Synthesizer 我有抓到音樂裡的音階 比如Do Re Mi Fa Sol La Ti Do'等8個(gè)基本音 但有的音快有的音慢 我只能用數(shù)字來衡量他的數(shù)字或是做筆記來計(jì)入 是可以的 而且一定可以抓到 但有個(gè)問題 在程式裡有一段為pitch .Music-processing和paddle
要如何解釋裡面程式是在做甚麼的??
?
module demo_sound1(
?input? clock,
?output [7:0]key_code,
?input? k_tr
);
?reg [15:0]tmp;
?wire[15:0]tmpa;
?reg tr;
?reg [15:0]step;
?wire[15:0]step_r;
?reg [15:0]TT;
?reg[5:0]st;
?reg go_end;
Music-processing
?always @(negedge k_tr or posedge clock) begin
?if (!k_tr) begin
?? ??step=0;
?? ??st=0;
?? ??tr=0;
?end
?else
?if (step<step_r) begin
? ??case (st)
? ??0: st=st+1;
? ??1: begin tr=0; st=st+1;end
? ??2: begin tr=1;st=st+1;end
? ??3: if(go_end) st=st+1;
? ??4: begin st=0;step=step+1;end
? ??endcase
?end
?end
///? pitch? //
?wire [7:0]key_code1=(
??(TT[3:0]==1)?8'h2b:(//1
??(TT[3:0]==2)?8'h34:(//2
??(TT[3:0]==3)?8'h33:(//3
??(TT[3:0]==4)?8'h3b:(//4
??(TT[3:0]==5)?8'h42:(//5
??(TT[3:0]==6)?8'h4b:(//6
??(TT[3:0]==7)?8'h4c:(//7
??(TT[3:0]==10)?8'h52:(//1
??(TT[3:0]==15)?8'hf0:8'hf0
??))))))))
?);
///? paddle? ///
?assign tmpa[15:0]=(
??(TT[7:4]==15)?16'h10:(
??(TT[7:4]==8)? 16'h20:(
??(TT[7:4]==9)? 16'h30:(
??(TT[7:4]==1)? 16'h40:(
??(TT[7:4]==3)? 16'h60:(
??(TT[7:4]==2)? 16'h80:(
??(TT[7:4]==4)? 16'h100:0
??))))))
?);
/// note list ///
?always @(step) begin
?case (step)
0:TT=8'h11;//1
1:TT=8'h11;//1
2:TT=8'h15;//5
3:TT=8'h15;//5
4:TT=8'h16;//6
5:TT=8'h16;//6
6:TT=8'h25;//5
7:TT=8'h14;//4
8:TT=8'h14;//4
9:TT=8'h13;//3
10:TT=8'h13;//3
11:TT=8'h12;//2
12:TT=8'h12;//2
13:TT=8'h21;//1
14:TT=8'h15;//5
15:TT=8'h15;//5
16:TT=8'h14;//4
17:TT=8'h14;//4
18:TT=8'h13;//3
19:TT=8'h13;//3
20:TT=8'h22;//2
21:TT=8'h15;//5
22:TT=8'h15;//5
23:TT=8'h14;//4
24:TT=8'h14;//4
25:TT=8'h13;//3
26:TT=8'h13;//3
27:TT=8'h22;//2
28:TT=8'h11;//1
29:TT=8'h11;//1
30:TT=8'h15;//5
31:TT=8'h15;//5
32:TT=8'h16;//6
33:TT=8'h16;//6
34:TT=8'h25;//5
35:TT=8'h14;//4
36:TT=8'h14;//4
37:TT=8'h13;//3
38:TT=8'h13;//3
39:TT=8'h12;//2
40:TT=8'h12;//2
41:TT=8'h11;//1
?endcase
?end
?assign step_r=42;///Total note
/KEY release & code-out
?always @(negedge tr or posedge clock)begin
??if(!tr) begin tmp=0;go_end=0 ;end
??else if (tmp>tmpa)go_end=1;
??else tmp=tmp+1;
?end
?assign key_code=(tmp<(tmpa-1))?key_code1:8'hf0;
endmodule
轉(zhuǎn)載于:https://www.cnblogs.com/huwiam99/archive/2008/09/01/1281513.html
總結(jié)
以上是生活随笔為你收集整理的(求助)請問DE2-70版子 音樂合成器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual C++ 时尚编程百例016
- 下一篇: objective-c 使用NSNumb