新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 6系列FPGA中使用塊RAM的心得(4)

6系列FPGA中使用塊RAM的心得(4)

作者: 時(shí)間:2017-10-13 來(lái)源:網(wǎng)絡(luò) 收藏

調(diào)試過(guò)程中的一點(diǎn)小問(wèn)題
生成IP核的調(diào)用之后,然后對(duì)其進(jìn)行例化,格式是
rrra YourInstanceName (
.clka(clka),
.addra(addra), // Bus [9 : 0]
.douta(douta)); // Bus [43 : 0]
然后調(diào)用sinplify,對(duì)其進(jìn)行綜合,結(jié)果很不順利。首先是synplify報(bào)不支持器件,才發(fā)現(xiàn)synplify 9.6.2是2008年的產(chǎn)品,比Spartan6器件還要老。更新到Synplify Pro D-2010.03之后,器件是支持了,但是一綜合就報(bào)錯(cuò)停止了,卻不提示有什么錯(cuò)誤。查看工程文件夾下面的.log和.srr文件,里面也是啥信息都沒(méi)給。沒(méi)辦法,只好切換會(huì)使用XST進(jìn)行綜合。這回能給出信息了:因?yàn)槔?8次,所以有28個(gè)錯(cuò)誤,全部提示ERROR:HDLCompilers:26 - f7.v line 49 unexpected token: rrra。
HDLCompilers:26這個(gè)錯(cuò)誤,一般情況下是把wire類型的值賦給了reg型的變量才提示的,但是仔細(xì)檢查了程序沒(méi)有發(fā)現(xiàn)有不對(duì)的類型聲明,非常納悶。思考了好久才發(fā)現(xiàn),問(wèn)題竟然就出在IP調(diào)用的身上。原來(lái),我在使用rrra ROM0(start,addr0,temp0);調(diào)用之后,對(duì)應(yīng)的douta它是一個(gè)端口,自然是wire類型的,而程序聲明中temp0是一個(gè)reg型的,用來(lái)傳遞參數(shù)時(shí)因?yàn)轭愋筒黄ヅ渥匀惶崾惧e(cuò)誤了。
這里也發(fā)現(xiàn)了在ISE中調(diào)用synplify進(jìn)行綜合的一個(gè)不足之處,就是如果源程序中如果有錯(cuò)誤的話,在直接調(diào)用synplify時(shí),并不給出錯(cuò)誤的具體信息,而是直接終止綜合;沒(méi)辦法還得使用XST點(diǎn)擊“check syntax”進(jìn)行程序的語(yǔ)法檢查,而在synplify環(huán)境下點(diǎn)擊“syntax check”一樣也能給出錯(cuò)誤信息??磥?lái)二者的接口還不是非常完善吧。

本文引用地址:http://butianyuan.cn/article/201710/365648.htm


關(guān)鍵詞: FPGA RAM

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉