打印
[verilog]

常用的RTL级建模

[复制链接]
1118|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhangyuhua|  楼主 | 2016-11-28 22:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zhangyuhua 于 2016-11-28 22:23 编辑

     RTL(Register Transfer Level)指不关注寄存器与组合逻辑的细节,通过描述寄存器到寄存器之间的电路逻辑功能。
1、寄存器电路建模
    寄存器的特点为仅当时钟沿(上升沿或下降沿)到达时,才有可能发生输出的改变。
    寄存器信号声明:寄存器被定义为reg型。但注意:某些信号虽然被定义为reg型,但最终综合的结果并不是寄存器;只有当信号被定义为reg型,且处理该信号的always敏感表为posedge或negedge沿敏感时,该信号才会被实现为寄存器。
2、存储器建模
     Verilog语法中存储单元定义的格式如下:reg [data_width] memoryname [addresswidth];(如:reg[7:0] RAM8×64[0:63]).
     在使用存储单元时,不能直接引用存储器某地址的某比特位值,如想对地址为"32"的第2bit和高2bit的值进行操作,不能直接进行操作。正确的操作方法是,先将存储单元赋值给某个寄存器,然后在对该寄存器的某位进行相关操作,如下例所示。
reg [7:0]RAM×64[0:63];
reg [7:0]mem_data;
always @(posedge clk)
     begin
          if(wr && cs)           //write
               RAM×64[addr]<=data_in;
          else  if(!wr && cs)   //read
                      mem_data<=  RAM×64[addr];
     end
3、时钟的分频电路     一般对时钟进行处理,分为分频和移相。
    派生时钟是指将源时钟进行分频而得到的时钟。
    偶数分频十分简单,只需用高速时钟做一个同步计数器。奇数分频电路相对复杂一些。下面用两个例子来解释下偶数分频和奇数分频。

//--------偶分频----------
reg clk_out;
reg [3:0]cnt;
always @(posedge clk or negedge rst_n)
     begin
          if(!rst_n)
              cnt<='d0;
          else  if(cnt=='d9)
                     cnt<='d0;
                 else cnt<=cnt+1'b1;
     end
always @(posedge clk or negedge rst_n)
     begin
          if(!rst_n)
              clk_out<=1'b0;
          else  if(cnt=='d9)
                     clk_out<=~clk_out;
                 else clk_out<=clk_out;
     end
//-------奇分频-------
reg clk1;
reg [1:0]state;
always @(posedge clk or negedge rst_n)
     begin
          if(!rst_n)
              state<=2'b00;
          else case(state)
                      2'b00:state<=2'b01;
                      2'b01:state<=2'b11;
                      2'b11:state<=2'b00;
                      default:state<=2'b00;
                endcase
     end
always @(negedge clk or negedge rst_n)
     begin
         if(!rst_n)
             clk1<=1'b0;
         else  clk1<=state[0];
     end
assign  clk_out=clk1 & state[0];

      





相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

26

帖子

1

粉丝