medadnoki
14-03-2011, 11:54
سلام ! یه برنامه هست که به زبان AHPL نوشته شده و مربوط به ضرب کننده 4 بیتی هست.........
اگه میشه یه توضیح بدین که این برنامه چی کار میکنه؟؟؟؟!!!!!!!
اگه میشه خط به خط توضیح بدین
یه زحمت دیگه این که data path برنامه رو هم اگه کسی میدونه بکشه
پیشاپیش تشکر میکنم :wink:
.AHPLMODULE : multiplier
.MEMORY : ac1[4];ac2[4];count[2];extra[4];busy
.EXINPUTS : dataready
.[EXBUSES : inputbus[8
.OUTPUTS : result[8];done
;(CLUNTIS : INC[2](count);ADD[5](extra;ac2
;[ac1<=inputbus[0:3];ac2<=inputbus[4:7
;extar<=4$0
.(dataready)/(1^)<=
;\busy<=\1
.(ac1[3])/(4^)<=
.(extra<=ADD[1:4](extra;ac2
;[extra,ac1<=\0\,extra,ac1[0:2
;(count<=INC(count
.(count))/(2/&)^)<=
;\0\=>result = extra,ac1 ; done = \1\; busy
.(1)<=
ENDSEQUENCE
.(CONTROLRESET(1
.END
اگه میشه یه توضیح بدین که این برنامه چی کار میکنه؟؟؟؟!!!!!!!
اگه میشه خط به خط توضیح بدین
یه زحمت دیگه این که data path برنامه رو هم اگه کسی میدونه بکشه
پیشاپیش تشکر میکنم :wink:
.AHPLMODULE : multiplier
.MEMORY : ac1[4];ac2[4];count[2];extra[4];busy
.EXINPUTS : dataready
.[EXBUSES : inputbus[8
.OUTPUTS : result[8];done
;(CLUNTIS : INC[2](count);ADD[5](extra;ac2
;[ac1<=inputbus[0:3];ac2<=inputbus[4:7
;extar<=4$0
.(dataready)/(1^)<=
;\busy<=\1
.(ac1[3])/(4^)<=
.(extra<=ADD[1:4](extra;ac2
;[extra,ac1<=\0\,extra,ac1[0:2
;(count<=INC(count
.(count))/(2/&)^)<=
;\0\=>result = extra,ac1 ; done = \1\; busy
.(1)<=
ENDSEQUENCE
.(CONTROLRESET(1
.END