首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Verilog根据输入在任务中强制不同的连接

Verilog根据输入在任务中强制不同的连接
EN

Stack Overflow用户
提问于 2012-07-11 16:52:16
回答 2查看 4.2K关注 0票数 2

有没有一种方法可以在Verilog任务中强制任意连接到某个特定值,而不提前指定连接的名称或其分层路径?优选地,不必为每条可能的线路编写大量的if语句。

我的目标是足够模块化,以便这个任务可以用来从testbench的角度驱动任何连接。

下面是我希望做的例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
task force;
input value;
input [8*N-1:0] string;              // Assume N is large enough
begin
    force ... = value;
end
endtask

其中的三个点“...”将是传入的连接的路径(例如counter0.clk0.in_enable)。

假设我有64根线,我想把它们中的一些放高。它们不在一条总线上,它们都有不同的名称或分层路径。在testbench设置中,我将编写一个C函数,该函数读取我希望驱动到某个特定值的连接线的表,并将每个连接线传递给这个Verilog任务,但是我如何才能告诉模拟器将哪条连接线驱动为高电平,而不必每次都在任务本身中写出每一条连接线?

如果我能做到这一点,正确的方法是什么?如果我不能做到这一点,你能给我什么建议呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-11 19:16:57

很可能有一种PLI/VPI方法可以做到这一点,但我对此并不是很有经验,所以对此持保留态度。我在verilog中也没有注意到任何将字符串转换为线引用的反射。

话虽如此,我所要做的就是使用脚本语言读取您的表,并生成一个带有巨大case语句的过程化生成的.v文件。

你可以有一个像force_wire(int wireId),release_wire(int wireId)这样的PLI调用,其中的连接id可以是表中的行或者其他什么。

在C例程中,您可以从字符串name中查找id,然后这将使用id调用verilog任务,id将从生成的case语句中选择要强制执行的内容。可能是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
task force
input forceVal;
input wireId
begin
   case (wireId)
   //AUTOGENERATED BELOW
   0 : force foo.bar = forceVal;
   1 : force foo.baz = forceVal;
   2 : force bar.foo = forceVal;
   ...
   endcase
end
票数 2
EN

Stack Overflow用户

发布于 2012-07-11 20:32:46

遗憾的是,不能,您不能使用非PLI Verilog构造来做您正在尝试的事情。强制的目标需要是网络的分层路径,并且没有办法对其使用字符串。

Tim在另一个答案中的建议是,基本上创建一个大的查找表,这可能是不使用Verilog PLI的最好方法。

如果你想使用PLI,你应该能够写一个函数,它可以接收字符串并作用力。我想做类似的事情已经有一段时间了,但还没有抽出时间去尝试。如果你找到更好的方法,请在这里回答你自己的问题。

编辑:使用PLI或SystemVerilog绑定的一些可能的实现的Here is a discussion

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11437564

复制
相关文章
python 删除文件中的空行
res = [x for x in res if x.split()] #将空行从 res 中去掉
全栈程序员站长
2022/09/02
3.5K0
sed 删除命令
删除/etc/passwd中的不能登录的用户(筛选条件:/sbin/nologin)
用户1217611
2022/05/06
1.3K0
sed 删除命令
Excel技巧:快速删除表中的空行
有时候,表中可能存在空行,如果我们需要删除表中的这些空行,如何快速操作呢?特别是包含大量数据的大表。为演示起见,下面的示例表数据较少。
fanjy
2023/02/24
2.8K0
Excel技巧:快速删除表中的空行
Linux sed 命令的使用
首先,就昨晚的发的消息道歉,虽然整蛊大家了,但是我还是挺开心的。 sed是一种流编辑器,配合正则表达式使用,sed处理文件之时,把当前处理的文保存在缓冲区,sed命令处理缓冲区的内容,将缓冲区的内容显示在到屏幕上,sed能够对一些重复操作的动作进行简化。 先来了解一下sed的命令格式 sed [options] 'command' filesname sed [options] -f scriptfilename filesname sed的命令 a \ 在当前行下面插入文本 i \ 在当前行
赵腰静
2018/03/09
3.2K0
Sed命令的基本使用
该文介绍了sed命令的基本使用,包括打印匹配行、替换匹配行、从文件中读取并写入到输出中等常用用法,以及使用修饰符进行更高级的文本处理。同时还介绍了sed命令的常用选项和例子,以及与其他文本处理工具的对比。
GavinZhou
2018/01/02
1.2K0
Excel去除空行的各种方法_批量删除所有空行
大家好,又见面了,我是你们的朋友全栈君。 本文转载至:https://baijiahao.baidu.com/s?id=1590204478648348952&wfr=spider&for=pc,
全栈程序员站长
2022/09/20
5.7K0
Excel去除空行的各种方法_批量删除所有空行
使用lsof命令恢复已删除文件(正在使用的文件)
此方法适用于正在使用的文件 ,且被删除后,可以通过lsof的方式进行恢复。 演示:
互联网-小阿宇
2022/11/21
1.8K0
使用lsof命令恢复已删除文件(正在使用的文件)
python 实现类似sed命令的文件内
#!/usr/bin/env python     #_*_coding:utf-8 _*_     #replace()方法把字符串中的 old(旧字符串)替换成new(新字符串),如果指定第三个参数max,则替换不超过 max 次。     #语法:str.replace(old, new[, max])     import sys,os     old_text, new_text, file_name = sys.argv[1], sys.argv[2], sys.argv[3]     f = 
py3study
2020/01/10
1.1K0
linux sed命令使用
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/details/77985202
bear_fish
2018/09/14
4.9K0
linux sed命令使用
linux sed命令使用
sed是一款常用的文本处理工具,其名称来自于“stream editor”(流编辑器)。sed能够从标准输入或文件中读取文本,对文本进行编辑和转换,然后将结果输出到标准输出或指定的文件中。在Linux系统中,sed命令是一种非常强大和灵活的工具,可以帮助用户进行多种文本操作,如文本替换、删除、插入、打印等等。
堕落飞鸟
2023/03/27
3.8K0
Python去除文本文件中的空行
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
村雨遥
2019/09/09
4.2K0
Python 去除文本文件中的空行
功能 读取存在空行的文件,删除其中的空行,并将其保存到新的文件中; 代码 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/3/18 21:41 # @Author : cunyu # @Site : cunyu1943.github.io # @File : deleteBlankLines.py # @Software: PyCharm """ 读取存在空行的文件,删除其中的空行,并将其保存到新的文件中 """
村雨遥
2022/06/15
1.6K0
Linux中sed工具的使用
sed 是一种流编辑器,它是文本处理中非常重要的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。
谢公子
2022/01/19
2.3K0
Linux中sed工具的使用
如何使用 sed 替换文件中的字符串?
在 Linux 系统中,sed 是一个非常有用的文本处理工具,它可以用于在文件中进行字符串替换操作。sed 是流编辑器(stream editor)的缩写,它可以对文本进行逐行处理,包括查找和替换特定的字符串。本文将详细介绍如何使用 sed 命令在文件中进行字符串替换操作。
网络技术联盟站
2023/06/09
5.5K0
如何使用 sed 替换文件中的字符串?
Linux的sed命令
Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处理、编辑文本文件。Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
狼啸风云
2019/11/05
4.1K0
linux中sed命令总结
原文:https://wangchujiang.com/linux-command/c/sed.html
入门笔记
2022/06/02
3.3K0
linux下的删除文件命令,Linux下删除文件命令「建议收藏」
在linux中删除文件与文件夹我们可以直接使用rm就可以删除了,彻底删除文件或文件夹我们可以使用shred命令来完成,接下来是小编为大家收集的Linux下删除文件命令,希望能帮到大家。
全栈程序员站长
2022/09/17
49.8K0
linux下的删除文件命令,Linux下删除文件命令「建议收藏」
Linux批量替换某种类型文件中的字符串-sed和grep命令使用
今天在修改rpm打包的spec配置文件时,遇到一个问题就是:需要将100个左右源代码中的spec配置文件中的Release一行中的发布版本号使用宏变量%{_release}进行替换。
ccf19881030
2019/04/23
5.8K0
点击加载更多

相似问题

使用sed删除文件中的空行

20

使用一个sed命令,使用sed +删除"#“和空行

63

使用sed删除空行

1716

如何使用SED删除多个空行?

60

无法使用sed regex删除空行

40
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文