首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yosys中的原语

Yosys中的原语
EN

Stack Overflow用户
提问于 2017-06-21 01:00:44
回答 1查看 490关注 0票数 1

我正在使用YOSYS将Verilog转换为BLIF。输入是一个电路(L__0),它只包含not、and、or原语和一些行为锁存代码。

Here is my Verilog code

我使用的命令是:

代码语言:javascript
复制
> read_verilog <file>
> proc; opt; memory; opt; techmap; opt;
> write_blif <file>

输出文件包含作为没有.model的.subckt的$_DFF_PN0_,所以当我将此文件输入到MVSIS时,它会忽略所有子.model。

如何将此子电路映射到其他工具已知的部分?

代码语言:javascript
复制
.model L_0_0
.inputs clk rst ce ins
.outputs outs
.names $false
.names $true
1
.names $undef
.names outs r_out_1_0 ce $0\outs[0:0]
1-0 1
-11 1
.names r_out_2_0 w_out_2_0 ce $0\r_out_2_0[0:0]
1-0 1
-11 1
.names r_out_1_0 w_out_1_0 ce $0\r_out_1_0[0:0]
1-0 1
-11 1
.names r_out_0_0 w_out_0_0 ce $0\r_out_0_0[0:0]
1-0 1
-11 1
.subckt $_DFF_PN0_ C=clk D=$0\outs[0:0] Q=outs R=rst
.subckt $_DFF_PN0_ C=clk D=$0\r_out_0_0[0:0] Q=r_out_0_0 R=rst
.subckt $_DFF_PN0_ C=clk D=$0\r_out_1_0[0:0] Q=r_out_1_0 R=rst
.subckt $_DFF_PN0_ C=clk D=$0\r_out_2_0[0:0] Q=r_out_2_0 R=rst
.names r_out_0_0 r_out_1_0 w_out_0_0
1- 1
-1 1
.names r_out_2_0 r_out_2_0 w_out_1_0
1- 1
-1 1
.names r_out_0_0 ins w_out_2_0
1- 1
-1 1
.names r_out_0_0 w_in_0_0
1 1
.names r_out_1_0 w_in_0_1
1 1
.names r_out_2_0 w_in_1_0
1 1
.names r_out_2_0 w_in_1_1
1 1
.names r_out_0_0 w_in_2_0
1 1
.names ins w_in_2_1
1 1
.end

带同步复位的新输出如下所示。所有的Verilog输出端口都是连接的,而且看起来它们也是在BLIF中连接的。

代码语言:javascript
复制
# Generated by Yosys 0.7 (git sha1 61f6811, i686-w64-mingw32.static-gcc 4.9.3 -Os)

.model L_0_0
.inputs clk rst ins
.outputs outs
.names $false
.names $true
1
.names $undef
.names r_out_0_0 $false rst $0\outs[0:0]
1-0 1
-11 1
.names w_out_1_0 $false rst $0\r_out_1_0[0:0]
1-0 1
-11 1
.names w_out_0_0 $false rst $0\r_out_0_0[0:0]
1-0 1
-11 1
.latch $0\outs[0:0] outs re clk 2
.latch $0\r_out_0_0[0:0] r_out_0_0 re clk 2
.latch $0\r_out_1_0[0:0] r_out_1_0 re clk 2
.names r_out_0_0 r_out_1_0 w_out_0_0
11 1
.names ins r_out_1_0 w_out_1_0
1- 1
-1 1
.names r_out_0_0 w_in_0_0
1 1
.names r_out_1_0 w_in_0_1
1 1
.names ins w_in_1_0
1 1
.names r_out_1_0 w_in_1_1
1 1
.end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-21 21:38:52

BLIF文件格式不支持具有异步重置的存储元素。不幸的是,您没有发布用作输入的Verilog代码,但从您发布的内容可以明显看出,您的Verilog确实包含这样的存储元素。($_DFF_PN0_是一种Yosys内部单元类型,用于表示具有负极性的正沿触发器,异步复位为零。Yosys只是按原样输出该单元格,因为在BLIF中没有与之对应的构造。)

如果你想使用BLIF输出,那么你必须避免在你的设计中使用异步重置。Yosys在这里无能为力,因为这是BLIF文件格式的限制。

如果您不想更改HDL码,但可以将异步重置转换为同步重置,则只需在运行proc之后运行techmap -map +/adff2dff.v即可。

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

https://stackoverflow.com/questions/44659068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档