完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 大帝成员组 于 2013-6-7 18:59 编辑
老师叫我用有128个宏单元的cpld做一个8bit*8bit的实验,可是我编好程序之后说宏单元超了,怎么破啊 下面是我的程序,见笑了: module test(L,sw,sw1,clk,segment) input clk; input [1:8]sw,sw1;//两个拨码开关,要相乘 output [1:8]L,segment;//动态显示控制变量 wire [7:0]decode[10]; wire [3:0]flag[8];//保存拨码开关乘积 reg [15:0] Count;//动态显示计时 /*led显示码*/ assign decode[0]=8'b11111100; assign decode[1]=8'b01100000; assign decode[2]=8'b11011010; assign decode[3]=8'b11110010; assign decode[4]=8'b01100110; assign decode[5]=8'b10110110; assign decode[6]=8'b10111110; assign decode[7]=8'b11100000; assign decode[8]=8'b11111110; assign decode[9]=8'b11110110; assign segment=decode[flag[Count[13:11]]]; assign L=8'd1< assign flag[6]=0; assign flag[5]=0; assign flag[4]=(sw*sw1)/10000; assign flag[3]=(sw*sw1)%10000/1000; assign flag[2]=(sw*sw1)%1000/100; assign flag[1]=(sw*sw1)%100/10; assign flag[0]=(sw*sw1)%10; always @(posedge clk) begin Count<=Count+1; end endmodule |
|
相关推荐
5个回答
|
|
|
|
|
|
assign flag[4]=(sw*sw1)/10000;
assign flag[3]=(sw*sw1)%10000/1000; assign flag[2]=(sw*sw1)%1000/100; assign flag[1]=(sw*sw1)%100/10; assign flag[0]=(sw*sw1)%10; 这段代码直观但是要占用很多逻辑单元的,建议采用移位的方法直接求结果 我记得网上应该有相应代码的 |
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1802 浏览 1 评论
1540 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
1757 浏览 0 评论
959 浏览 0 评论
2544 浏览 0 评论
1572 浏览 39 评论
5804 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-3 01:55 , Processed in 0.642174 second(s), Total 82, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号