clifford changed the topic of #yosys to: Yosys Open SYnthesis Suite: http://www.clifford.at/yosys/ -- Channel Logs: https://irclog.whitequark.org/yosys
<mithro> awygle: well, I got to this point -> https://github.com/YosysHQ/yosys/issues/652
seldridge has quit [Ping timeout: 246 seconds]
seldridge has joined #yosys
SpaceCoaster has joined #yosys
GuzTech has quit [Ping timeout: 240 seconds]
lutsabound has quit [Quit: Connection closed for inactivity]
leviathan has joined #yosys
emeb has quit [Quit: Leaving.]
emeb_mac has joined #yosys
leviathan has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
<mithro> Anyone know if Yosys supports the attributes like "(* async_reg = "true", mr_ff = "true", dont_touch = "true" *)" ?
rohitksingh_work has joined #yosys
seldridge has quit [Ping timeout: 268 seconds]
sorki has joined #yosys
s_frit_ has joined #yosys
s_frit has quit [*.net *.split]
Nazara has quit [*.net *.split]
awordnot has quit [*.net *.split]
srk has quit [*.net *.split]
sorki is now known as srk
SpaceCoaster has quit [Ping timeout: 252 seconds]
awordnot has joined #yosys
Nazara has joined #yosys
dys has joined #yosys
dys has quit [Ping timeout: 252 seconds]
emeb_mac has quit [Ping timeout: 268 seconds]
m4ssi has joined #yosys
GuzTech has joined #yosys
indy_ has joined #yosys
indy has quit [Read error: Connection reset by peer]
s_frit_ has quit [Remote host closed the connection]
s_frit has joined #yosys
s_frit has quit [Remote host closed the connection]
s_frit has joined #yosys
lutsabound has joined #yosys
rohitksingh_work has quit [Read error: Connection reset by peer]
maikmerten has joined #yosys
SpaceCoaster has joined #yosys
maikmerten has quit [Remote host closed the connection]
SpaceCoaster has quit [Quit: ZNC 1.6.5+deb1+deb9u1 - http://znc.in]
leviathan has joined #yosys
FabM has joined #yosys
rohitksingh has joined #yosys
emeb has joined #yosys
FabM has quit [Quit: Leaving]
lutsabound has quit [Quit: Connection closed for inactivity]
<cr1901_modern> mithro: The only attribute that you'd prob be interested in that yosys supports is (* keep = "true" *)
maikmerten has joined #yosys
GuzTech has quit [Quit: Leaving]
<daveshah> mithro: you mean the syntax, or those specific named attributes?
<daveshah> It seems to support that syntax, and it propogates them to the output
<daveshah> as cr1901_modern says, keep is supported and well used
<daveshah> async_reg is more for PnR/STA usage, so is ignored by Yosys but propagated to the output like all attributes for use downstream
<daveshah> no idea what mr_ff is for
<cr1901_modern> ISE or Vivado-ism
<daveshah> Why does it assume the gender of its flip flops?
* cr1901_modern rolls eyes
seldridge has joined #yosys
<daveshah> I am guessing mr = master reset?
<daveshah> Similar to GSR on the ECP5
<daveshah> Can't find any reference to it other than in migen though...
m4ssi has quit [Remote host closed the connection]
seldridge has quit [Ping timeout: 252 seconds]
bcoppens has joined #yosys
digshadow has quit [Quit: Leaving.]
digshadow has joined #yosys
digshadow has quit [Ping timeout: 260 seconds]
seldridge has joined #yosys
lutsabound has joined #yosys
seldridge has quit [Ping timeout: 268 seconds]
<mithro> daveshah / cr1901_modern: https://github.com/YosysHQ/yosys/issues/655
<mithro> Is there a way to do attrmap (http://www.clifford.at/yosys/cmd_attrmap.html) while keeping the original attribute too?
<mithro> I guess I want setattr [ -mod ] [ -set name value | -unset name ]... [selection] ?
seldridge has joined #yosys
<mithro> maybe: setattr -set keep 1 a:dont_touch="true" ?
dys has joined #yosys
<mithro> setattr -set keep 1 a:dont_touch=true
<mithro> That seems to be what I needed
<mithro> Now just need to figure out async_reg .....
<daveshah> mithro: I think async_reg should just become keep for Yosys
<mithro> daveshah: oh?
<daveshah> And even then that only matters if you enable retiming - which is disabled by default
<daveshah> All you are saying for async_reg from a synthesis point of view is don't move or optimise away the register
<daveshah> Obviously it also needs to be passed on to place and route and STA so they can deal with it too
<mithro> • A register can receive asynchronous data on the D input pin relative to its source clock.
<daveshah> Yes, it is intended for a typical synchroniser chain to prevent metastability
<daveshah> You want the FFs of the chain to be as close together as possible to maximise the slack available to remove metastability
<daveshah> you also don't want logic placed between them during retiming
<mithro> • The register is a synchronizing register within a synchronization chain.
<mithro> ASYNC_REG modifies the register to output the last known value even though a timing violation occurs.
<daveshah> That last paragraph will be refering to simulation
<mithro> Specifying ASYNC_REG also affects optimization, placement, and routing to improve Mean Time Before Failure (MTBF) for registers that may go metastable. If ASYNC_REG is applied, the placer will ensure the flip-flops on a synchronization chain are placed closely to maximize MTBF. Registers with ASYNC_REG that are directly connected will be grouped and placed together into a single SLICE, assuming they have a compatible control set
<mithro> and the number of registers does not exceed the available resources of the SLICE.
<mithro> daveshah: So you seem to be correct, we want keep set
<mithro> daveshah: And we want to pass through to place and route
<daveshah> Yeap
<mithro> So, I'll need
<mithro> setattr -set keep 1 a:async_reg=true
<daveshah> Yes
<daveshah> (btw - do you see here why in Yosys an empty selection isn't an error :D)
<mithro> daveshah: Well, I still think a selection should have something like an "-allow_empty" type flag or something....
leviathan has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
<mithro> daveshah: But anyway, lunch time for me
<daveshah> You would break every existing script with that though...
lutsabound has quit [Quit: Connection closed for inactivity]
<mithro> daveshah: Yeah, probably too late now
<daveshah> mithro: I suppose you could have it the other way round, so you specify something to enable the error. But then people would have to remember to use it
<mithro> daveshah / cr1901_modern: https://github.com/enjoy-digital/litex/pull/114 - Still a WIP
<daveshah> Neat
maikmerten has quit [Remote host closed the connection]
<mithro> daveshah: My next step is to get vpr doing place and route with virtual fabric
<q3k> mithro: my condolences, you get a drive-by review ^^
seldridge has quit [Ping timeout: 268 seconds]
digshadow has joined #yosys
digshadow has quit [Ping timeout: 240 seconds]
digshadow has joined #yosys
s_frit has quit [Remote host closed the connection]
s_frit has joined #yosys
lutsabound has joined #yosys