我有测试文件(test.txt)如下:
`RANGE(vddout,sup)
`RANGE(vddin,sup_p)
Run Code Online (Sandbox Code Playgroud)
我想修改这个文件如下:
`RANGE(vddout,sup,tol_sup)
`RANGE(vddin,sup_p,tol_sup_p)
Run Code Online (Sandbox Code Playgroud)
这是我尝试的代码,但它无法使用re.search找到并替换模式.你能指出代码中的缺陷在哪里吗?
with open("test.txt", 'r+') as file :
for line in file:
print("line={}".format(line))
findPattern=re.search(r'(`RANGE\(\w+,(\w+))\)',line)
if findPattern:
print("findPattern={}".format(findPattern))
line=re.sub(r'(`RANGE\(\w+,(\w+))\)',r'\1,tol_\2',line)
Run Code Online (Sandbox Code Playgroud) 我需要处理一个 python 列表,如下所示:
PGPrimary=['VDD', 'VSS', 'A', 'Y']
Run Code Online (Sandbox Code Playgroud)
我需要将此列表更改为以下格式:
//PG PRIMARY ("VDD") ("VSS") ("A") ("Y")
Run Code Online (Sandbox Code Playgroud)
我尝试了下面的代码,但它不起作用:
PGPrimary=['VDD', 'VSS', 'A', 'Y']
print("1:PGPrimary:",PGPrimary)
PGPrimary="//PG PRIMARY " + ' '.join(PGPrimary)
(','.join('("' + item + '")' for item in PGPrimary))
print("2:PGPrimary:",PGPrimary)
Run Code Online (Sandbox Code Playgroud)
这是输出:
('1:PGPrimary:', ['VDD', 'VSS', 'A', 'Y'])
('2:PGPrimary:', '//PG PRIMARY VDD VSS A Y')
Run Code Online (Sandbox Code Playgroud)
进程已完成,退出代码为 0
谁能指出为什么代码不起作用?
我想在文本文件中的每一行的开头搜索某个模式.
这是文本文件的内容:
module abc ( A, B, C, NSUP, PSUP, SEL );
input NSUP;
input PSUP;
input SEL;
inout A;
inout B;
output C;
//sample text input pins
//sample text output pins
Run Code Online (Sandbox Code Playgroud)
我希望输出为
NSUP
PSUP
SEL
A
B
C
Run Code Online (Sandbox Code Playgroud)
我尝试下面的代码,但它打印一个空列表作为输出:
fh=open("VamsModel","r")
contents=fh.read()
inoutPortList=re.compile(r'^(input|output|inout)\s+(\w+)')
matches = inoutPortList.finditer(contents)
for match in matches:
print(match.group(2))
Run Code Online (Sandbox Code Playgroud)
如果我从re.compile模式中删除"^"然后它可以工作,但它只会在开始时查找模式.
inoutPortList=re.compile(r'(input|output|inout)\s+(\w+)')
Run Code Online (Sandbox Code Playgroud)
上面的正则表达式也将从我的文本文件输出最后两行(如下所示),我不想要:
//sample text input pins
//sample text output pins
Run Code Online (Sandbox Code Playgroud)
当我使用"^"时,为什么我的正则表达式无法工作的任何想法?
我想在零时刻执行总是阻塞.例如,下面的代码将不会在零时执行.
always @* begin
//functional code
end
Run Code Online (Sandbox Code Playgroud)
我在最后移动了敏感度列表,以便代码将在零时执行,
always begin
//funcitonal code
@*;
end
Run Code Online (Sandbox Code Playgroud)
此代码在零时执行,但在零时间之后根本不执行,即使块内使用的输入发生了变化.例如,请参阅下面的代码及其输出:
module AlwaysTimeZeroTest_v();
reg reg_A;
initial begin
$display ("I'm in Initial begin block \tTime=%f, reg_A=%b\n",$stime,reg_A);
#1
reg_A=1'bZ;
#1
reg_A=1'b1;
#1
reg_A=1'b0;
#1
reg_A=1'bZ;
#5 $finish;
end
always @* begin
$display ("I'm in Non-time Zero always block\tTime=%f, reg_A=%b\n",$stime,reg_A);
end
always begin
$display ("I'm in time Zero always block \tTime=%f, reg_A=%b\n",$stime,reg_A);
@*;
end
endmodule
Run Code Online (Sandbox Code Playgroud)
输出:
**I'm in Initial begin block Time=0.000000, reg_A=x
I'm in time Zero always block …Run Code Online (Sandbox Code Playgroud)