zoukankan      html  css  js  c++  java
  • 关于PicoBlaze 读操作的一个问题的讨论(一)

    今天一个下午都在这个问题上挣扎,令PicoBlaze读取四个switches的状态值,显示在LCD上,但是无论怎么改变键值,始终读回来的值是0xF,这说明没有读回来的值是错误的。

       造成错误的原因无非有两个,一个psm软件程序的问题,另一个当然是hdl逻辑的错误。

       首先我测试了汇编程序的原因,INPUT 是PicoBlaze的读指令,测试的程序是这样的(测试部分后用;注释掉了)

    
    
    display_sw: 
    
    INPUT s6, SW    ;read the value of switches
    
    ;LOAD s6,aa
    
    ;OUTPUT s6,LED

       我把读到的键值显示在LED上,发现显示也是不变,从而得知是HDL的问题。

     

    开始时的INPUT INTERFACE是这样定义的

    
    
    reg [7:0] in_port_data;
    
    always @(posedge clk)
    
    if(reset)
    
    in_port_data <= 0;
    
    else if(read_strobe==1 && port_id[0]==1)
    
    in_port_data<={4'b0000,sw};
    
    else in_port_data<=8'hzz;	  
    
    assign in_port = in_port_data;	

    我的INPUT INTERFACE是最后是这样定义的才得到正确结果

    
    
    //----------------------------------------------------------------------------------------------------------------------------------
    
    // Input interface  
    
    //----------------------------------------------------------------------------------------------------------------------------------
    
    
    
    reg [7:0] in_port_data;
    
    always @*
    
    if(port_id[0])
    
    //error: sw的port_id是01,因此此处[]为0,错作1
    
    in_port_data={4'b0000,sw};
    
    else  in_port_data=0;
    
    assign in_port = in_port_data;	
    放一张read operation timing 图
    read_operation 

    user guide 曰: The  external circuit must ensure that  the  input data is  stable  during the  sampling edge to avoid  a timing violation.

    这样看来我的电路设计可能是造成了timing violation.看了别人的设计是这样的,恍然大悟。

    continuous access ports

    continus_access_ports

    single access ports

    single access ports

    OPTIMISM, PASSION & HARDWORK
  • 相关阅读:
    SpringMVC数据绑定
    SpringMVC概述
    应用Spring和Hibernate(C3P0数据池)写数据库交互项目
    Spring的AOP特性
    Sping框架的IOC特性
    MD5加密字符串
    重力感应 视频横竖屏切换
    自定义View(三)实现简单的可拖动、可缩放的ImageView
    自定义View(二)增加View的属性
    自定义View的学习(一) 自绘制控件
  • 原文地址:https://www.cnblogs.com/hiramlee0534/p/5731113.html
Copyright © 2011-2022 走看看