捍卫真理

    1. 谢谢:victory:
    2. 谢谢楼主:kiss:
    3. 【FIFO】【高清】【抢先下载】 957/98635 FPGA/CPLD 2012-05-08
      :rose: 谢谢
    4. 夏老您好! 下面是一个SRAM的测试程序。 module sram_test( iRst        ,                                                        //复位                   iClk      ,                                                        //时钟                   k1,                              oSram_a    ,                                                        //SRAM的地址                   Sram_dq    ,                                                        //SRAM的数据                   oSram_we_n    ,                                                //SRAM的写使能                   oSram_oe_n    ,                                    //SRAM的输出使能                   oSram_ce_n    ,                                                //SRAM的片选信号                   oSram_be_n    ,                                                //字节高地位的使能                                                   error, //出错红灯亮                   task_start , //开始蓝灯亮                   task_finish  //完成绿灯亮                  ); input           iRst  ; input           iClk  ; input                         k1; output [1:0]    oSram_be_n   ; output [18:0]   oSram_a   ; inout  [15:0]   Sram_dq   ; output          oSram_we_n   ; output          oSram_oe_n   ; output          oSram_ce_n   ; output          error; output          task_start ; output          task_finish;         //ports wire            iRst       ;   wire            iClk     ;                                  reg    [18:0]   oSram_a   ;   wire   [15:0]   Sram_dq   ;   reg             oSram_we_n   ;   reg             oSram_oe_n   ;   reg             error     ;                                reg             task_start ; reg             task_finish; //internal signals reg  [4:0]      STATE,NEXT; reg  [15:0]     sram_db_reg; reg  [15:0]     count      ; //parameters parameter     IDLE     = 5'b00001,                WRITE_1  = 5'b00010,                WRITE_2  = 5'b00100,                READ_1   = 5'b01000,                READ_2   = 5'b10000; assign  oSram_ce_n = 1'b0; assign  oSram_be_n = 2'd0;               assign  Sram_dq = oSram_oe_n ? sram_db_reg:16'hz; //state machine               always @ (STATE or oSram_a or error or task_start) begin      case(STATE)      IDLE    : if(!k1)                    NEXT = WRITE_1;                else                    NEXT = IDLE   ;      WRITE_1 : NEXT = WRITE_2;      WRITE_2 : if( oSram_a >= 19'h7ffff)                    NEXT = READ_1;                else                    NEXT = WRITE_1;      READ_1  : NEXT = READ_2;      READ_2  : if((  oSram_a >= 19'h7ffff)||(error==0))//error ||                    NEXT = IDLE;                else                    NEXT = READ_1;      default : NEXT = IDLE ;      endcase end //registe the state always @ (posedge iClk or negedge iRst) if(!iRst)     STATE
    5. 已经笑死9999个了,您千万不要做第10000个! 397/48582 聊聊、笑笑、闹闹 2011-11-15
      什么
    6. ise 仿真结果均为高阻态 5/7358 FPGA/CPLD 2011-11-15
      老大也在啊
    7. ise 仿真结果均为高阻态 5/7358 FPGA/CPLD 2011-11-15
      麻烦把测试程序也贴下。
    8. ise 仿真结果均为高阻态 5/7358 FPGA/CPLD 2011-11-15
      这是什么仿真器,没见过!
    9. 高人啊。:congratulate:
    10. 序列检码器 状态机 的一点小疑问 17/5337 FPGA/CPLD 2011-11-11
      这是夏老的回答
    11. 序列检码器 状态机 的一点小疑问 17/5337 FPGA/CPLD 2011-11-11
      原帖由 捍卫真理 于 2011-11-10 11:41 发表 夏老您好! 我想问一下下面的状态机设计中的“F”状态可不可以省略,用A状态来代替。 根据: 状态简化: 如果在状态转换图中出现这样两个状态,它们在相同的的输入下转换到同一状态去,并得到一样的 ... 在这个例子中,确实可以省略F状态。之所以举这个例子,就是因为在较复杂的系统设计过程中,确定最简状态十分困难。我的看法是:为了更快更好地完成设计,即使多用几个状态,可很快生成想要的控制信号,也比少用状态不容易完成设计好。当然状态过多会造成资源浪费,也是不值得的。这是一个设计的权衡问题,状态多寡各有利敝,要根据具体情况确定。目前数字系统资源比较便宜,工时十分宝贵,在批量小的设计中,不必过多考虑状态化简。批量大的设计则另当别论。
    12. :congratulate:
    13. 您说的对!向您学习了。 祝夏老身体健康!!!:congratulate:
    14. 夏老您好! 我想问一下下面的状态机设计中的“F”状态可不可以省略,用A状态来代替。 根据:           状态简化:  如果在状态转换图中出现这样两个状态,它们在相同的的输入下转换到同一状态去,并得到一样的输出,则称为等价状态。显然等价状态是重复的,可以合并为一个。电路的状态数越少,存储电路也就越简单。状态化简的目的就在于将等价状态尽可能地合并,以得到最简状态图。 [例1] 一个简单的状态机设计--序列检测器 //------------ 文件名:seqdet.v ------------------- /********************************************************************* *** 模块功能:本模块能对串行输入的数据流进行检测,只要发现10010 ***           码型会立即输出一个高位的电平。 ***     本模块是RTL级可综合模块,已通过综合后门级仿真 *********************************************************************/ module seqdet( x, z, clk, rst); input x,clk, rst; output z; reg [2:0] state;//状态寄存器 wire z; parameter         IDLE = 3 'd0,                       A = 3 'd1,                  B = 3 'd2,                            C = 3 'd3,                  D = 3 'd4,                            E = 3 'd5,                  F = 3 'd6,                            G = 3 'd7; assign  z =(state==D && x==0) ? 1 :0;                              //状态为D时又收到了0,表明10010收到应有输出Z为高 always @(posedge clk or negedge rst)         if(!rst)                 begin                     state

最近访客

< 1/1 >

统计信息

已有2557人来访过

  • 芯积分:--
  • 好友:11
  • 主题:6
  • 回复:14

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言