2856|3

83

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

带异步预置功能的D发器的verilog描述,求助 [复制链接]

这种D触发器应该是很常见,功能也很简单的一种单元,但最近用verilog描述的时候却遇到了不少麻烦。
因为我对VHDL比较熟悉,所以用VHDL描述起来很简单,但我应用的地方必须用verilog写,对它又不太熟,所以请大家帮个忙。
vhdl代码如下:
library ieee;
use ieee.std_logic_1164.all;

entity dffr_ld is
    port (    D:    in std_logic;
        ld:    in std_logic;
        clk:    in std_logic;
        nR:    in std_logic;
        D1:    in std_logic;
        Q:    out std_logic
        );
end dffr_ld;

architecture ver1 of dffr_ld is
    begin
   
    process(clk,D1,ld,nR)
        begin
        if nR='0' then
            Q<='0';
        elsif ld='1' then
            Q<=D1;
        elsif clk='1' and clk'event then
            Q<=D;
        end if;
    end process;
end ver1;

这样写应该没错吧,但是怎么写成verilog呢?

最新回复

module        dffr_ld(Q,ld,clk,nR,D1)         output                Q;         input                ld,clk,nR,D1;         reg                Q;         initial         Q = 0;         //异步清零         always        @(nR)                 begin                         if(nR == 0)                                 assign                Q = 0;                         else                                 deassign        Q;                 end         //异步置位         always        @(ld)                 if(ld == 1 and nR == 1)         Q = D1;         //clk触发         always        @(posedge clk)        Q = D1; endmodule          详情 回复 发表于 2007-11-9 21:19
点赞 关注

回复
举报

66

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
没人理我呢?贴子发的位置不对?
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
primitive dffr_ld(Q,ld,clk,nR,D1)
        output                Q;
        input                ld,clk,nR,D1;
        reg                Q;

        table
        //        ld        clk        nR        D1        pre_Q        Q
                //异步复位
                ?        ?        0          ?  :        ?  :        0
                //异步预置
                1        ?        1          0  :        ?  :        0
                1        ?        1          1  :        ?  :        1       
                1        ?        1          x  :        ?  :        x
                //clk上升沿触发
                0        r        1          0  :         ?  :        0
                0        r        1          1  :         ?  :        1
                0        r        1          x  :         ?  :        x
                //保持
                0        ?        1        ?  :        ?  :        -
                0        f        1        ?  :         ?  :        -
        endtable
endprimitive

刚学,请多多指教
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

4
 
module        dffr_ld(Q,ld,clk,nR,D1)
        output                Q;
        input                ld,clk,nR,D1;
        reg                Q;

        initial         Q = 0;
        //异步清零
        always        @(nR)
                begin
                        if(nR == 0)
                                assign                Q = 0;
                        else
                                deassign        Q;
                end
        //异步置位
        always        @(ld)                 if(ld == 1 and nR == 1)         Q = D1;
        //clk触发
        always        @(posedge clk)        Q = D1;
endmodule       
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表