Skip to content

完善了README文件#53

Open
JassonHuo wants to merge 1 commit intoNJU-ProjectN:masterfrom
JassonHuo:master
Open

完善了README文件#53
JassonHuo wants to merge 1 commit intoNJU-ProjectN:masterfrom
JassonHuo:master

Conversation

@JassonHuo
Copy link

原本readme文件中并没有提及.nxdc文件,易造成一定误解

@Wenz-jam
Copy link
Contributor

nvboard/README.md

Lines 82 to 110 in 900991b

### 引脚绑定
手动调用`nvboard_bind_pin()`来绑定所有引脚较为繁琐。
为了方便进行信号的绑定,NVBoard项目提供了一套从自定义约束文件生成绑定代码的流程。具体地
1. 编写一个自定义格式的约束文件,其格式为
```
top=top_name
# Line comment inside nxdc
signal pin
signal (pin1, pin2, ..., pink)
```
在约束文件的第一行,需要指定顶层模块名(上文中为`top_name`)。
约束文件支持两种信号绑定方式,`signal pin`表示将顶层模块的`signal`端口信号绑定到引脚`pin`上,
`signal (pin1, pin2, ..., pink)`表示将顶层模块的`signal`信号的每一位从高到低依次绑定到`pin1, pin2, ..., pink`上。
约束文件支持空行与行注释。
2. 通过命令`python $(NVBOARD_HOME)/scripts/auto_pin_bind.py nxdc约束文件路径 auto_bind.cpp输出路径`来生成C++文件。
调用该文件中的`nvboard_bind_all_pins(dut)`函数即可完成所有信号的绑定。
注意,该脚本的错误处理并不完善,若自定义约束文件中存在错误,则可能无法生成正确的报错信息与C++文件。
~~如果发现脚本中的错误也可以尝试修复一下然后丢pr~~
可以在`board`目录下的引脚说明文件中查看引脚信息。
其中`output`表示该信号方向为输出方向(从RTL代码到NVBoard),`input`为输入方向(从NVBoard到RTL代码)。
目前引脚列表中不包含复位引脚`RST`,因为NVBoard在cpp文件中包含一些内部状态,仅复位RTL设计部分会使其与NVBoard状态不一致。
一个实现全系统复位效果的简单方法是退出NVBoard并重新运行。RTL设计的复位工作由verilator的wrapper完成,具体见`example/csrc/main.cpp`

编写一个自定义格式的约束文件,其格式为
...
通过命令python $(NVBOARD_HOME)/scripts/auto_pin_bind.py nxdc约束文件路径 auto_bind.cpp输出路径来生成C++文件

这个地方不就是你说的东西么

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants