差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
代码风格 [2021/05/14 11:13]
anran
代码风格 [2021/05/14 17:17] (当前版本)
anran
行 3: 行 3:
 <code verilog> <code verilog>
  
-// ******************************************************************** +module beeper ( 
-// >>>>>>>>>>>>>>>>>>>>>>>>>​ COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<​ +input clk, 
-// ******************************************************************** +input [3:0] key_n, 
-// File name    ​LED.v +output speaker 
-// Module name  : LED +); 
-// Author ​      : STEP +  
-// Description ​ : control LED +parameter cnt_Width = 15; 
-// Web          : www.stepfpga.com +parameter ClkDividerDo = 12000000/262/2; 
-//  +parameter ClkDividerRe = 12000000/294/2; 
-// -------------------------------------------------------------------- +parameter ClkDividerMi = 12000000/330/2; 
-// Code Revision History :  +parameter ClkDividerFa = 12000000/349/2; 
-// -------------------------------------------------------------------- +reg en, beep; 
-// Version: |Mod. Date:   ​|Changes Made: +reg [cnt_Width-1:0] cnt, ClkDivider;
-// V1.0     ​|2017/​03/​02 ​  ​|Initial ver +
-// -------------------------------------------------------------------- +
-// Module Function:利用按键和开关的状态来控制LED灯的亮灭。+
  
-module LED (key,sw,led);+always @(* 
 +    case(key_n) 
 +        4'​b1110:​ begin ClkDivider = ClkDividerDo;​ en = 1'b1; end 
 +        4'​b1101:​ begin ClkDivider = ClkDividerRe;​ en = 1'b1; end 
 +        4'​b1011:​ begin ClkDivider = ClkDividerMi;​ en = 1'b1; end 
 +        4'​b0111:​ begin ClkDivider = ClkDividerFa;​ en = 1'b1; end 
 +        default: begin ClkDivider = ClkDivider; ​  en = 1'b0; end 
 +    endcase 
 + 
 +always @(posedge clk)  
 +    if(cnt >= ClkDivider-1) cnt <= {cnt_Width{1'​b0}};​  
 +    else cnt <= cnt + 1'​b1;​ 
 +  
 +always @(posedge clk)  
 +    if(cnt >= ClkDivider-1) beep <= ~beep; 
 +    else beep <= beep; 
 +  
 +assign speaker = en? beep : 1'b0; 
 + 
 +endmodule ​
  
- input [3:0] key;​ //​按键输入信号 
- input [3:0] sw;​ //​开关输入信号 
- output [7:0] led;​ //​输出信号到LED 
-  
- assign led = {key,​sw}; ​                                         //​assign连续赋值。大括号是拼接符,表示把key和sw拼接组成一个新的8位数赋值给led 
-  
-endmodule 
  
 </​code>​ </​code>​