基于eda的乐曲硬件演奏电路内容摘要:
NENT。 SIGNAL Counter : STD_LOGIC_VECTOR (7 DOWNTO 0)。 SIGNAL INDEX1: STD_LOGIC_VECTOR (3 DOWNTO 0) BEGIN CNT8 : PROCESS(clk4hz ,Counter) IF Counter=138 THEN Counter = 00000000。 ELSIF (clk4hz39。 EVENT AND clk4hz = 39。 139。 ) THEN Counter = Counter+1。 END IF。 END PROCESS CNT8。 u1 : MUSIC1 PORT MAP(address=Counter , clock=clk4hz,q=Index1 )。 mux: PROCESS(auto) Begin IF auto=0 THEN Index2 = Tone。 END IF。 ELSE Index1 = Tone。 END PROCESS mux。 END。 END one。 在源程序中 Tone 是 音乐 节拍发生器 输出的音符数据; clk4hz 是计数时钟输入端,该信号作为输出音符的快慢信号 , 此处选择 4Hz 频率,即每一计数值的停留时间为 秒计 1 拍,四四拍的四分音符的持续时间为 1 秒,频率越高,时钟的输出节拍速度就快,演奏的速度就越快,反之演奏的速度就变慢; index2 为手控输入的 音符数据; auto 为 手动 /自动选择按扭, auto=1 时为自动 演奏, auto=0时为手动 输入。 音乐 节拍发生器 的 仿真输出波形文件如图 636( a)所示 ,分析可知仿真结果正确无误,将以上设计的 音乐 节拍发生器 电 路 设置成可调用的元件,以备高层设计中使用,其元件符号如图 636( b)所示 (a) (b) 图 637 音乐节拍发生器 (a) 仿真输出波形。 ( b)元件符号图 2 音符译码电路 Toaba 模块 音符译码电路即音调发生器实际上是一个查表电路,放置 21 个音乐简谱对应的频率表,根据该表为 数控分频模块( speaker)提供所发音符频率的 初始值(该初始值可参照表 64),而此数在 数控分频模块 入口的停留时间即为此音符的节拍数,不失一般性,以下 VDHL 程序中仅设置了“梁祝”乐曲全部音符所对应的音符频率的 初始值,共 16 个,每个 音符停留时间由音乐 节拍发生器的时钟频率决定,在此为 4Hz 信号,这 16 个值的输出由对应于音符译码电路的 4 位输入值 Index[3..0]确定,该值中 音符的停留时间由音乐 节拍发生器中的音符数据决定,该数据重复的次数为该 音符的节拍数,如为 2 则为四二拍,如为 4 则为四四拍即全音符。 其 VHDL 源程序如下: LIBRARY IEEE。 USE。 ENTITY ToneTaba IS PORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0)。 CODE : OUT STD_LOGIC_VECTOR (3 DOWNTO 0)。 HIGH : OUT STD_LOGIC。 Tone : OUT STD_LOGIC_VECTOR (12 DOWNTO 0) )。 END。 ARCHITECTURE one OF ToneTaba IS BEGIN PROCESS(Index) BEGIN CASE Index IS 译码电路,查表方式,控制音调的预置数 WHEN 0000 = Tone=1111111111111。 CODE=0000。 HIGH =39。 039。 8191 WHEN 0001 = Tone=1000100010001。 CODE=0001。 HIGH =39。 039。 4369。 WHEN 0010 = Tone=1001010110010。 CODE=0010。 HIGH =39。 039。 4786。 WHEN 0011 = Tone=1010000011111。 CODE=0011。 HIGH =39。 039。 5151。 WHEN 0101 = Tone=1011000001000。 CODE=0101。 HIGH =39。 039。 5640。 WHEN 0110 = Tone=1011100011110。 CODE=0110。 HIGH =39。 039。 5918。 WHEN 0111 = Tone=1100000010110。 CODE=0111。 HIGH =39。 039。 6166。 WHEN 1000 = Tone=1100010001000。 CODE=0001。 HIGH =39。 139。 6280。 WHEN 1001 = Tone=1101100001001。 CODE=0010。 HIGH =39。 139。 6921。 WHEN 1010 = Tone=1101000010010。 CODE=0011。 HIGH =39。 139。 6674。 WHEN 1100 = Tone=1101001100111。 CODE=0101。 HIGH =39。 139。 6759。 WHEN 1101 = Tone=1101110001110。 CODE=0110。 HIGH =39。 139。 7054。 WHEN 1111 = Tone=1110001。基于eda的乐曲硬件演奏电路
相关推荐
序见附录。 VHDL 实现 PROCESS(CLK_IN) 开始 返回 波形选 择控制按下否 进行波形的调用 调用波形选择程序 Y N Y N 基于 FPGA 的信号发生器设计论文 15 BEGIN IF(CLK_IN39。 EVENT AND CLK_IN=39。 039。 ) THEN IF Step249 THEN ――分频值 Step=Step+1。 ELSE Step=0。
步的,以便清晰观察码元变化时对应调制载波的相位变化;也可以是异步的,因为实际的系统都是异步的。 码元速率约为 100kbps。 (2)相对移相和绝对移 相 移相键控分为绝对移相和相对移相两种。 以未调载波的相位作为基准的相位调制叫做绝对移相。 以二进制调相为例,取码元为“ 1”是,调制后载波与未调制载波同相;取码元为“ 0”时,调制后载波与未调载波相反;“ 1”和“ 0”时调制后载波相位差
可以实现三输入( F′、G′和块外信号 H1)的任意布尔函数。 由函数发生器生成的信号 F′或 H′可以被连到X 输出端, G′或 H′可以被连到 y 输出端。 从而使一个 CLB 可以实现两个独立的多达四变量的任意函数,或单个 五变量任意函数,或一个任意的四变量函数连同一个五变量函数,或多达九变量的一些函数。 在单一逻辑块上实现如此宽的逻辑函数
学校的哪一处,都是一道亮丽的风景线;还有富有感召力的石膏图像、会说话的文化墙、固定的标语、名人挂像、名人名言,让人置身于浓厚的学习氛围中,催人上进,让人奋发;新建的学生宿舍楼、食堂宽敞明亮,大大提高了学生的生活质量;现代化的多媒体教室、微机室、语音室、图书室、阅览室,标准化的生、化、物实验室„„为学生们的学习构筑了坚实的平台;教师的办公室 由办公楼转到教学楼,教师与学生实现“零距离”
A,B) BEGIN IF CLK39。 EVENT AND CLK=39。 139。 THEN Q1=Q1+1。 IF Q1=9 THEN Q1=0000。 Q2=Q2+1。 END IF。 AB=Aamp。 B。 CASE AB IS WHEN 00=IF Q2=3 AND Q1=1 THEN Q2=0000。 Q1=0001。 COUT=39。 139。 ELSE COUT=39。 039
0 米送出一个脉冲,并将计数值送译码动态扫描模块进行显示。 预置参数采用非压缩 BCD码,所以在计数器设计时必须将二进制 1010至 1111六个状态跳过去。 在 VHDL 程序中,用 IF 语句来实现。 if km(3 down 0)= “ 1001” then km :=km+ “ 0111” : 第 6 页(共 13 页) else km=kin+1。 end if。 计程模块