搜索
bottom↓
回复: 1

请教Verilog HDL任务调用,参数传递问题?

[复制链接]

出0入0汤圆

发表于 2013-9-16 22:48:18 | 显示全部楼层 |阅读模式
我先实现流水灯的效果,用任务调用的办法,以下是我编的代码
module LED(clk, Led);
input clk;
output [7:0]Led;
reg [7:0]Led;
reg [31:0] count;
integer a;

initial a = 2'H01;
/*************************************/
task Led_Light;
        input [7:0]ss;//用来接收传递过来的参数,不知道可不可以这样写。
        output [7:0]ll;//这是LED的8个脚
        reg [7:0]ll;
        begin
                ll <= ss;
        end
endtask
/*************************************/
always @(posedge clk)//时钟上升沿
begin
        if (count == 32'D5_000_000)//50M的晶振
                begin
                        count = 32'D0;
                        Led_Light(a, Led);//任务调用,a为赋给LED的值,16进制
                        a = a << 1;         //移位       
                end
        else
                begin
                        count = count + 32'D1;
                        if (a == 2'H80)
                                a = 2'H01;       
                end
end
/*************************************/
endmodule

问题来了,效果居然是这样的:流水-全灭-流水-全灭-流水......
而我想要的效果是:          流水-流水-流水-流水-流水......
中间没连接起来,不知道那段时间为什么被吞了,居然全灭了,代码哪里有问题呢?
不知道在verilog中传递参数是怎么做的,我尝试这样写就出了这个问题。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2013-9-17 09:24:10 | 显示全部楼层
解决了,2'H80改成8'H80,原来是宽度不对。晕哦~
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 07:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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