-
Notifications
You must be signed in to change notification settings - Fork 0
Home
minichao9901 edited this page Feb 27, 2024
·
64 revisions
xilinx::designutils::write_template -template -verilog
(*mark_debug="true"*)
connect
ta //list all targets
ta 2 //选择targets 2
help
help ta
jtagterminal -start
mrd 0x00000000 4
mwr 0x50 0x11223344
mrd 0x50
help mwr //关于写的更多用法
help mrd //关于读的更多用法
rrd //读取cpu寄存器组
rrd mpcore //可以看到所有的cpu内部外设寄存器
rwr //写cpu寄存器组
rst //复位
bpadd //添加断点
bpaddr -addr 0x1000000
bpadd -addr &main
bpadd -file main.c -line 23
bpadd -addr &fooVar -type hw -mode 0x3
nxt //到达breakpoint后,会停止。输入nxt执行下一行
nxt 10000 //往下执行10000行。输入一个很大的值,目的是让其达到下一个breakpoint
在xsct中bpadd添加断点后,再烧录程序,它会在断点的地方停下来。这个时候可以用rrd/mrd观察寄存器组或内存的信息。输入nxt 10000,让其继续跑下去。
- 15211功耗数据
- 15211问题跟踪列表分析
- 孙工布置的仿真tb及路径规范
- 15231新的方案面积评估
- (dma/vdma/fifo/axi)
- 重新研究一下dma的使用
- 研究一下大佬的VIP驱动程序
- 研究自定义外设加fifo
- 完成ADC_DAC例程的进一步学习
- 完成原子的剩余例程的学习
- mb读写ps端的lwip
axi-cdma的使用例子
https://www.cnblogs.com/ifpga/p/9092016.html
- new3 去掉local memory。目标是验证,去掉local memory之后,mb程序是否可以直接在ddr或local memory中运行?
- new3_1 基于new3,并参考了xilinx的doc,已经搞定了。最核心的其实是手动修改mb的ld文件,让vector和reset位于ddr区域。
- new4 去掉dp接口,通过dc接口接axi_gpio/axi_uartlite。目标是验证,不用dp接口,用dc接口是否可以读写外设?(不可以)
- new5 增加对HP0_DDR_LOWOCM的总线地址访问。目标是寻找为什么ocm_higher_addr不能访问?
- new6 增加对HP0_DDR_LOWOCM的总线地址访问,并修改mb的cache地址范围为0x10000000--0x1fffffff。目标是寻找寻找为什么ocm_higher_addr不能访问?
- new7 基于new6,换成GP0_DDR_LOWOCM访问
- new8 基于new7,将HP0_HIGH_OCM换成GP0_LOW_OCM。这个时候,mb的Data全部都是GP0访问,没有HP0访问。发现这种情况所有ram都可以访问到,是最好的。
- new9 去掉IC/DC接口,启动DP/IP接口,用DP/IP接口去访问外设和执行程序,看是否可以执行程序?(可以)
parameter CNT_MAX=50_000_000;
reg [31:0] div_cnt;
reg [5:0] lsm_cnt;
always @(posedge sys_clk or negedge sys_rst_n)
if(sys_rst_n==0)
div_cnt<=0;
else if(div_cnt==CNT_MAX-1)
div_cnt<=0;
else
div_cnt<=div_cnt+1;
always @(posedge sys_clk or negedge sys_rst_n)
if(sys_rst_n==0)
lsm_cnt<=0;
else if(div_cnt==CNT_MAX-1)
lsm_cnt<=lsm_cnt+1;
reg sys_clk, sys_rst_n;
initial sys_clk=0;
always #10 sys_clk=~sys_clk;
initial begin
sys_rst_n=0;
#1000;
sys_rst_n=1;
end