我的一个接口程序用到双向口,设为DD,在底层模块使用时用的是三个信号ddi、ddo和oe,在顶层时将这三个信号组合形成三态口:
DD<=ddo when (oe='1') else (others =>'Z');
ddi<=DD;
现在我要仿真顶层模块,一些状态的转换是需要这个双向口控制的,在testbench中应该如何来描述这个信号,才能让我既看到DD作为输出时的信号波形,又可以编辑DD作为输入时的波形以便做正确的状态转换?
共5条
1/1 1 跳转至页

2楼

3楼

叮叮当当那篇帖子感觉也没讲太清楚,您的那篇讲双向口的部分很少,也没看懂。我现在的理解是,是否应该把方向控制信号oe定义为输出,testbench中,DD的激励由oe的输出响应来产生。
先将双向口的描述用verlog再写下:
assign DD = oe? ddo : 16’bz;
assign ddi = DD;
testbench是否可以这样描述:
`timescale 1ns / 1ps
initial
begin
#100;
if (oe) // oe为1时是向双向口写数据,在底层时可编辑ddo波形,
//在顶层ddo为内部信号,此时直接给DD赋值
DD=16'd1;
#200;
if (oe)
DD=16'd5;
end
......
verlog刚学,请指教。我现在还在用vhdl,版主可用verlog指点,我基本能看懂,再自己翻译成VHDL,谢谢!
先将双向口的描述用verlog再写下:
assign DD = oe? ddo : 16’bz;
assign ddi = DD;
testbench是否可以这样描述:
`timescale 1ns / 1ps
initial
begin
#100;
if (oe) // oe为1时是向双向口写数据,在底层时可编辑ddo波形,
//在顶层ddo为内部信号,此时直接给DD赋值
DD=16'd1;
#200;
if (oe)
DD=16'd5;
end
......
verlog刚学,请指教。我现在还在用vhdl,版主可用verlog指点,我基本能看懂,再自己翻译成VHDL,谢谢!

5楼
一般情况下,如果你所要描述的器件是个总线从设备,那么oe应该是个输入,由Testbench产生oe。正如由CPU控制RAM的读写一样。
这正好和你的描述是相反的。
assign DD = oe? ddo : 16’bz;
assign ddi = DD;
testbench:
`timescale 1ns / 1ps
initial
begin
#100;
oe = 1;
#20;
testReg = DD;
#100;
oe = 0;
#10;
DD = 16'd1;
#200;
end
......
这正好和你的描述是相反的。
assign DD = oe? ddo : 16’bz;
assign ddi = DD;
testbench:
`timescale 1ns / 1ps
initial
begin
#100;
oe = 1;
#20;
testReg = DD;
#100;
oe = 0;
#10;
DD = 16'd1;
#200;
end
......
共5条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 | |
【我踩过的那些坑】杜绑线问题被打赏50分 | |
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 |