在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1611|回复: 0

[求助] 关于用verilog语言编写检测开关的问题

[复制链接]
发表于 2016-12-17 23:07:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
如果现在一共有18个拨动开关,用什么样的办法检测被关闭的两个开关是哪?只要求测出最左和最右两端的开关。我自己的思路部分代码如下:



  1. input[17:0] rang;
  2. wire[17:0] rang_1;

  3. assign rang_1 ={rang[0], rang[1], rang[2],rang[3],rang[4],rang[5],rang[6],rang[7], rang[8],rang[9], rang[10],rang[11],rang[12],rang[13],rang[14],rang[15],rang[16],rang[17]};



  4. always @(posedge clk or negedge clr_n)

  5. if(!clr_n)

  6. left_temp <=5'd0;

  7. else

  8. casex(rang)

  9. 18'b1xxxxxxxxxxxxxxxxx:left_temp <= 5'd1;

  10. 18'b01xxxxxxxxxxxxxxxx:left_temp <= 5'd2;

  11. 18'b001xxxxxxxxxxxxxxx:left_temp <= 5'd3;

  12. 18'b0001xxxxxxxxxxxxxx:left_temp <= 5'd4;

  13. 18'b00001xxxxxxxxxxxxx:left_temp <= 5'd5;

  14. 18'b000001xxxxxxxxxxxx:left_temp <= 5'd6;

  15. 18'b0000001xxxxxxxxxxx:left_temp <= 5'd7;

  16. 18'b00000001xxxxxxxxxx:left_temp <= 5'd8;

  17. 18'b000000001xxxxxxxxx:left_temp <= 5'd9;

  18. 18'b0000000001xxxxxxxx:left_temp <= 5'd10;

  19. 18'b00000000001xxxxxxx:left_temp <= 5'd11;

  20. 18'b000000000001xxxxxx:left_temp <= 5'd12;

  21. 18'b0000000000001xxxxx:left_temp <= 5'd13;

  22. 18'b00000000000001xxxx:left_temp <= 5'd14;

  23. 18'b000000000000001xxx:left_temp <= 5'd15;

  24. 18'b0000000000000001xx:left_temp <= 5'd16;

  25. 18'b00000000000000001x:left_temp <= 5'd17;

  26. 18'b000000000000000001:left_temp <= 5'd18;

  27. default: left_temp <= 5'd0;

  28. endcase



  29. always @(posedge clk or negedge clr_n)

  30. if(!clr_n)

  31. right_temp <=5'd13;

  32. else

  33. casex(rang)

  34. 18'bxxxxxxxxxxxxxxxxx1:right_temp <= 5'd18;

  35. 18'bxxxxxxxxxxxxxxxx10:right_temp <= 5'd17;

  36. 18'bxxxxxxxxxxxxxxx100:right_temp <= 5'd16;

  37. 18'bxxxxxxxxxxxxxx1000:right_temp <= 5'd15;

  38. 18'bxxxxxxxxxxxxx10000:right_temp <= 5'd14;

  39. 18'bxxxxxxxxxxxx100000:right_temp <= 5'd13;

  40. 18'bxxxxxxxxxxx1000000:right_temp <= 5'd12;

  41. 18'bxxxxxxxxxx10000000:right_temp <= 5'd11;

  42. 18'bxxxxxxxxx100000000:right_temp <= 5'd10;

  43. 18'bxxxxxxxx1000000000:right_temp <= 5'd9;

  44. 18'bxxxxxxx10000000000:right_temp <= 5'd8;

  45. 18'bxxxxxx100000000000:right_temp <= 5'd7;

  46. 18'bxxxxx1000000000000:right_temp <= 5'd6;

  47. 18'bxxxx10000000000000:right_temp <= 5'd5;

  48. 18'bxxx100000000000000:right_temp <= 5'd4;

  49. 18'bxx1000000000000000:right_temp <= 5'd3;

  50. 18'bx10000000000000000:right_temp <= 5'd2;

  51. 18'b100000000000000000:right_temp <= 5'd1;

  52. default: right_temp <= 5'd19;

  53. endcase


复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-7-4 07:05 , Processed in 0.016376 second(s), 7 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表