Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21602 ディスカッション

Autogenerated altshift taps

Altera_Forum
名誉コントリビューター II
2,784件の閲覧回数

https://alteraforum.com/forum/attachment.php?attachmentid=15412&stc=1  

 

Dear Developers, 

I am creating a code where I used memory , however there is a part of memory that I didn't actually use , it is "auto generated" called altshift taps as shown in image, Kindly I need a justification for adding it by Quartus. 

Many thanks.
0 件の賞賛
10 返答(返信)
Altera_Forum
名誉コントリビューター II
1,879件の閲覧回数

FPGA synthesis never implements any resource that isn't "actually used". I guess the problem is that you don't understand which part of the code infers a RAM based shift register. But without seeing the code, it's hard to tell.

Altera_Forum
名誉コントリビューター II
1,879件の閲覧回数

FPGA synthesis never implements any resource that isn't "actually used". I guess the problem is that you don't understand which part of the code infers a RAM based shift register. But without seeing the code, it's hard to tell. 

 

The hierarchy view already tells you that it's used in the implementation of dataodd_rtl. There's no additional autogenerated logic, it's just the way how altshift_taps is implemented.
Altera_Forum
名誉コントリビューター II
1,879件の閲覧回数

 

--- Quote Start ---  

FPGA synthesis never implements any resource that isn't "actually used". I guess the problem is that you don't understand which part of the code infers a RAM based shift register. But without seeing the code, it's hard to tell. 

 

The hierarchy view already tells you that it's used in the implementation of dataodd_rtl. There's no additional autogenerated logic, it's just the way how altshift_taps is implemented. 

--- Quote End ---  

 

 

I used data odd here : 

 

BEGIN 

IF (rising_edge (clk)) THEN 

Splitter<=Original(generaladdress); 

dataeven <= Splitter(9 downto 0); 

dataodd<=Splitter(19 downto 10); 

 

 

if kk=2 then 

First_Reg<=dataeven; 

else 

evenbuff<= dataeven; 

end if; 

xoddbuff<=dataodd; 

oddbuff<=xoddbuff; 

 

It temporary holding a value since I need to wait for one clock cycle, however, I defined it as signal of unsigned, I don't know why it used as m4k?
Altera_Forum
名誉コントリビューター II
1,879件の閲覧回数

The shown code snippet doesn't give reason to expect altshift_taps inference. I guess, i's not the full picture.

Altera_Forum
名誉コントリビューター II
1,879件の閲覧回数

There is nothing surprising here as by default the tool is made free to infer memory for some shift operations. The user can disable that in the project settings.

Altera_Forum
名誉コントリビューター II
1,879件の閲覧回数

altshift_taps is used for multicycle shift registers. But there's no respective function in the shown code snippet.

Altera_Forum
名誉コントリビューター II
1,879件の閲覧回数

 

--- Quote Start ---  

There is nothing surprising here as by default the tool is made free to infer memory for some shift operations. The user can disable that in the project settings. 

--- Quote End ---  

 

 

I tried to disable it here but it doesn't workhttps://www.alteraforum.com/forum/attachment.php?attachmentid=15420
Altera_Forum
名誉コントリビューター II
1,879件の閲覧回数

Thanks for reply, the only place I used that signal (dataodd) is here! How can I disable it? Regards.

Altera_Forum
名誉コントリビューター II
1,879件の閲覧回数

I don't see you have chosen the right setting.  

I believe it should be something like: Auto Shift Register Recognition OFF. 

You can also apply it specifically to your signal using attribute.
Altera_Forum
名誉コントリビューター II
1,879件の閲覧回数

I didn't notice such settings .. :(

返信