⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 musicpro_try.v

📁 采用Verilog HDL设计
💻 V
字号:
/* 乐曲演奏电路子模块 
   与musicpro.v的区别是这里均使用阻塞赋值语句*/
module musicpro_try(clk_6M,clk_4,clr,speaker,high,mid,low,carry);
  input  clk_6M,clk_4,clr;	//clk_6M: 用于产生各种音阶频率的基准频率;clk_4:  用于控制音长(节拍)的时钟频率
  output speaker,carry;		//speaker:用于激励扬声器的输出信号,为方波;carry:计数器divider的进位输出
  output [3:0]high,mid,low;	//分别用于显示高音、中音和低音音符,各用一个数码管来显示
  reg[3:0]high,mid,low;
  reg[13:0]divider,origin;	//divider :对clk_6M进行分频的计数器;origin:各种音阶频率对应的预置数 
  reg[7:0]counter;			//用于控制每个音符的时长及演奏的循环进行 
  reg speaker;
  wire carry;
  
/* (1)反馈预置计数器 */    
  assign carry=(divider==16383);
  always @(posedge clk_6M )
    begin      
        if(divider==16383)
			divider=origin;
		else
            divider=divider+1;   
    end

/* (2)2分频器 */  
  always @(posedge carry or posedge clr)
    begin
      if(clr)                   	// 异步清零,高有

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -