搜索
bottom↓
回复: 3

verilog HDL编程新手,请教一段程序的语法含义,延时,并行...

[复制链接]

出0入0汤圆

发表于 2012-7-4 15:08:15 | 显示全部楼层 |阅读模式

module ctrl_loadframe(
        clk200, rst, init_active, dmd_1080p, loadframe, loadframe_ok,
        blk_we, blk_md, blk_ad, blk_ok, row_we, row_md, row_ad, row_ok,
        loadrow_start, dmd_rowloads, dmd_noop, loadrow_ok
    );

    input                       clk200;
    input                       rst;
    input                       init_active;
    input                       loadframe;
    output                      loadframe_ok;
   
    output                      blk_we;
    output  [1:0]               blk_md;
    output  [3:0]               blk_ad;
    input                       blk_ok;
   
    start <= #1 0;
    loadframe1 <= #1 0;
    loadframe2 <= #1 0;

    always@(posedge clk200 or posedge rst) begin
        
            loadframe1 <= #1 loadframe;
            loadframe2 <= #1 loadframe1;
            if(loadframe2) begin
                start <= #1 1;
            end
            else if(loadframe_ok) begin
                start <= #1 0;
            end
            else begin
                start <= #1 start;
            end
        
    end

    assign #1 blk_we = blk_we_o;
    assign #1 blk_md = blk_md_o;
    assign #1 blk_ad = blk_ad_o;
  
   仅从语法上解释:

(1)clk200 为200MHz,loadframe1 <= #1 loadframe; 这条语句延时1nm再赋值,延时1nm大于clk200时钟周期,
     可是下一个时钟到来时延时还未结束,下一个时钟loadframe1 <= #1 loadframe;还能执行吗?为什么要对
     loadframe加延时呢。

(2)loadframe为input类型,如果loadframe的值在module 内改变,那么是否可以将改变值传到module 外呢?


(3)请问start <= #1 0;,和always@和assign 是否为并行执行,如果在本时钟周期内没有执行完,下一时钟又到来会怎样呢?


非常感谢!

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

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2012-7-4 16:26:56 | 显示全部楼层
自己找了下资料,

(1)#开头的延时不能综合,没有用。
(2)好像语法不允许
(3)都并行

出0入442汤圆

发表于 2012-7-4 21:55:56 | 显示全部楼层
这个是仿真程序,上面看到的只是接线和一些仿真逻辑。

出0入8汤圆

发表于 2012-7-5 09:23:40 | 显示全部楼层
本帖最后由 kebaojun305 于 2012-7-5 09:25 编辑

同意 楼上的  这个verilog  只是仿真时用的(一般是测试激励程序)  是不能综合的。


(2)loadframe为input类型,如果loadframe的值在module 内改变,那么是否可以将改变值传到module 外呢?
  loadframe  已经定义为input类型  所以  在这个module是不能被赋值的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-8-27 11:17

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

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