锆石科技社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 360|回复: 4

蜂鸣器篇源码编译出错问题

[复制链接]

5

主题

42

帖子

1169

积分

金牌会员

Rank: 6Rank: 6

积分
1169
发表于 2017-2-14 21:43:53 | 显示全部楼层 |阅读模式
各位大神好!
       我按蜂鸣器篇的源码编译时,编译不能通过,请帮忙看看,谢谢!
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(60) near text ï
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(60) near text "ï";  expecting ":", or ","
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(60) near text ¼
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(60) near text š
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(61) near text ï
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(61) near text ¼
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(61) near text š
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(62) near text ï
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(62) near text ¼
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(62) near text š
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(63) near text ï
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(63) near text ¼
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(63) near text š
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(64) near text ï
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(64) near text ¼
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(64) near text š
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(65) near text ï
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(65) near text ¼
Error (10170): Verilog HDL syntax error at LAN_Vote8.v(65) near text š

//---蜂鸣器----
//弹奏do,re,mi,fa,so.la,si,do
module LAN_Vote8
(
//端口声明
//输入端口
CLK_50M,RST_N,KEY,
//输出端口
BEEP
);
//外部端口声明
input         CLK_50M;
input         RST_N;
input   [7:0] KEY;
output        BEEP;
//内部端口
reg    [19:0] time_cnt;
reg    [19:0] time_cnt_n;
reg    [15:0] freq;
reg           beep_reg;
reg           beep_reg_n;
//---逻辑功能实现---
//---时序逻辑给time_cnt赋值
always @ (posedge CLK_50M or negedge RST_N)
begin
     if(!RST_N)
             time_cnt <= 1'b0;
                else
                   time_cnt <= time_cnt_n;
end
//--组合逻辑实现计数
always @ (*)
begin
     if(time_cnt == freq)
             time_cnt_n = 1'b0;
                else
                  time_cnt_n = time_cnt +1'b1;
end
//---时序逻辑实现给beep_reg赋值
always @ (posedge CLK_50M or negedge RST_N)
begin
     if(!RST_N)
             beep_reg <= 1'b0;
          else
          beep_reg <= beep_reg_n;
end
//--组合逻辑实现判断频率,让蜂鸣器发声
always @ (*)
begin
     if(time_cnt == freq)
             beep_reg_n = ~beep_reg;
          else
             beep_reg_n = beep_reg ;
end
//---组合逻辑控制按键不同给freq赋值
//例如中音do的频率为523.3hz,freq = 50*10^6/(523*2)=47774
always@(KEY)
begin
     case(KEY)
               8'b00000001:freq<=16'd47774;   
                         8'b00000010:freq<=16'd42568;    //re 587.3hz
                         8'b00000100:freq<=16'd37919;    //mi 659.3hz
                         8'b00001000:freq<=16'd35791;    //mi 698.5hz
                         8'b00010000:freq<=16'd31888;    //fa 784hz
                         8'b00100000:freq<=16'd28409;    //fa 784hz
               8'b01000000:freq<=16'd25309;    //la 987.8hz
                         8'b10000000:freq<=16'd23889;    //si 1046hz
                         default:freq<=16'd0;
                         endcase
end
assign BEEP = beep_reg;
endmodule



回复

使用道具 举报

5

主题

42

帖子

1169

积分

金牌会员

Rank: 6Rank: 6

积分
1169
 楼主| 发表于 2017-2-14 21:57:00 | 显示全部楼层
这样该也不行always@(*) begin      case(KEY)                8'b00000001:freq=16'd47774;                              8'b00000010:freq=16'd42568;    //re 587.3hz                          8'b00000100:freq=16'd37919;    //mi 659.3hz                          8'b00001000:freq=16'd35791;    //mi 698.5hz                          8'b00010000:freq=16'd31888;    //fa 784hz                          8'b00100000:freq=16'd28409;    //fa 784hz                8'b01000000:freq=16'd25309;    //la 987.8hz                          8'b10000000:freq=16'd23889;    //si 1046hz                          default:freq=16'd0;                          endcase end assign BEEP = beep_reg; endmodule
回复 支持 反对

使用道具 举报

4

主题

40

帖子

1134

积分

金牌会员

Rank: 6Rank: 6

积分
1134
发表于 2017-2-15 13:11:39 | 显示全部楼层
case(KEY)下面的部分敲得有问题,从来敲一遍就对了
回复 支持 反对

使用道具 举报

5

主题

42

帖子

1169

积分

金牌会员

Rank: 6Rank: 6

积分
1169
 楼主| 发表于 2017-2-15 19:51:15 | 显示全部楼层
缘来就是你 发表于 2017-2-15 13:11
case(KEY)下面的部分敲得有问题,从来敲一遍就对了

真的是!谢谢大神
回复 支持 反对

使用道具 举报

发表于 2017-2-16 13:14:48 | 显示全部楼层
8'b00000010: 这个后面的冒号要英文下的冒号,你这个是中文下的冒号。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|锆石科技社区 ( 苏ICP备15059756号  

GMT+8, 2019-5-27 03:31 , Processed in 0.137193 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表