Altium教程FPGAHardwareD软件设计E0精.docx

上传人:b****5 文档编号:12576803 上传时间:2023-04-20 格式:DOCX 页数:9 大小:16.24KB
下载 相关 举报
Altium教程FPGAHardwareD软件设计E0精.docx_第1页
第1页 / 共9页
Altium教程FPGAHardwareD软件设计E0精.docx_第2页
第2页 / 共9页
Altium教程FPGAHardwareD软件设计E0精.docx_第3页
第3页 / 共9页
Altium教程FPGAHardwareD软件设计E0精.docx_第4页
第4页 / 共9页
Altium教程FPGAHardwareD软件设计E0精.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

Altium教程FPGAHardwareD软件设计E0精.docx

《Altium教程FPGAHardwareD软件设计E0精.docx》由会员分享,可在线阅读,更多相关《Altium教程FPGAHardwareD软件设计E0精.docx(9页珍藏版)》请在冰豆网上搜索。

Altium教程FPGAHardwareD软件设计E0精.docx

Altium教程FPGAHardwareD软件设计E0精

FPGAHardware_LEDChaserIOModule软件设计

第一部分原理图

1.1FPGA_LED_Chasser_IO_Module.SchDoc

VCC

U3

TCKTMSTDITDOTRST

JTAG.JTAGJTAGJTAG

JTAG

JTAG

..Q[15..0]

D[15..0]LCEC

CLRSLILEFTSRIU4

SR16CLEDBQ[15..0]

D[15..0]LCEC

CLRSLILEFTSRIU5

SR16CLEDBQ[15..0]

D[15..0]LCEC

CLRSLILEFTSRIU7

SR16CLEDBQ[15..0]

D[15..0]LCEC

CLR

SLILEFTSRIU8

SR16CLEDBQ[15..0]

Q[31..16]

Q[63..48]

Q[47..32]

D[15..0]D[31..16]D[63..48]D[47..32]VCC

VCCVCCVCCQ16

Q32

Q48

Q64

Q[15..0]Q[16..31]Q[48..63]

Q[47..32]Q71Q15Q31Q471Chx8BitDigitalIO

AIN[7..0]

AOUT[7..0]

CTRLIOB_1X8

A[7..0]

A0

A1

D[15..0]

D[31..16]

D[63..48]

D[47..32]

A[15..0]

B[15..0]

Y[15..0]S0

U9M16_B2B1

A[15..0]

B[15..0]

Y[15..0]S0

U10M16_B2B1

A[15..0]

B[15..0]

Y[15..0]S0U11M16_B2B1

A[15..0]

B[15..0]

Y[15..0]S0

U6M16_B2B1

GND

GND

GND

A2

U12

OR3SLOAD

DIR

MANUAL

Q[7..0]

D[7..0]LCEC

CLRSLILEFTSRIU1

SR8CLEDB

Q[71..64]

D[71..64]VCCQ0

Q63GND

GND

GND

GND

GNDD[71..64]

A[7..0]B[7..0]

Y[7..0]

S0

U2

M8_B2B1

GND

DIVN[..]<=1000000

CDQ

U19FD

U17

CDQ

U18FD

VCCSHIFT

GND

VCC

DigitalI/OLEDChaser

U13

U14

/N

CNTL[31..0]

LOAD

U15

CDIVN_32

/5

U16

CDIV5

4Chx16BitDigitalIOAIN[15..0]BIN[15..0]CIN[15..0]DIN[15..0]

AOUT[15..0]BOUT[15..0]COUT[15..0]DOUT[15..0]

DIGIO

IOB_4X16

CLK_BRDPXX

TEST_BUTTON

PXXJTAG_NEXUS_TMS

PXX

JTAG_NEXUS_TCKPXXJTAG_NEXUS_TDOPXXJTAG_NEXUS_TDIPXXThisexampleimplementsa72bitshiftregisterto"chase"LEDsarounda4x16DigitalI/Omodule.Thespeediskeptdownto10HztoallowtheI/Omoduletokeepup.

YouwillneedtouptherefreshspeedontheI/Omoduleto100ms(Optionsbuttonontheinstrument.The1x8modulecontrolsextrafunctions.

Bit0(togglehighthelowwillloadthechaserwiththesettingsenteredintothe4x16.The4x16inputsareusedtodisplaythestateofthechaser-thisisthedisplay.

The4x16outputbitsareusedtocontrolthevaluethatwillbeloadedintothechaserwhenoperatingin"ManualMode"

Power-OnLoad

HoldsLoadhighfortwoshiftclockcyclestoforcealoadonstartup.ReliesonthefactthattheDFFswillcomeupwithzeroloaded.

Loadfromthreesources.

1.StartupLoad

2.TestbuttonLoad

3.ToggleBit0ofCTRLfrominstrumentdisplay.

1.2FPGA_LED_Chasser.PAS{......................................................................................................}ProcedureUnRouteNet(Board:

IPCB_Board;Net:

IPCB_Net;

Var

Iterator:

IPCB_GroupIterator;

Prim:

IPCB_Prim;

KillList:

TList;

i:

Integer;

Begin

Iterator:

=Net.GroupIterator_Create;

Prim:

=Iterator.FirstPCBObject;

KillList:

=TList.Create;

WhilePrim<>NIlDo

Begin

IfPrim.IsFreePrimitiveThen

KillList.Add(Prim;

Prim:

=Iterator.NextPCBObject;

End;

Fori:

=0TOKillList.Count-1Do

Board.RemovePCBObject(KillList[i];

KillList.Free;

End;{......................................................................................................}

{......................................................................................................}ProcedureUnrouteClass(Board:

IPCB_BOARD;NetClass:

IPCB_OBjectClass;

Var

Iterator:

IPCB_BoardIterator;

net:

IPCB_Net;

Begin

Iterator:

=Board.BoardIterator_Create;

Iterator.SetState_FilterAll;

Iterator.AddFilter_ObjectSet(MkSet(eNetObject;

Net:

=Iterator.FirstPCBObject;

WhileNet<>NIlDo

Begin

IfNetClass.IsMember(Net.NameThen

UnrouteNet(Board,Net;

Net:

=Iterator.NextPCBObject;

End;

Board.ViewManager_FullUpdate;

End;{......................................................................................................}

{......................................................................................................}ProcedureUnRouteSelectedClasses(Board:

I_PCBBoard;

Var

i:

Integer;

Begin

Fori:

=0ToGetNetClass.Classes.Items.Count-1Do

IfGetNetClass.Classes.Selected[i]Then

UnrouteClass(Board,GetNetClass.Classes.Items.Objects[i];

End;{......................................................................................................}

{......................................................................................................}FunctionChooseNetCLass(Dummy:

Integer=0:

Boolean;

Begin

Result:

=GetNetClass.showmodal=mrOK;

End;

{......................................................................................................}

{......................................................................................................}ProcedureFillNetClassList(Board:

IPCB_Board;

Var

Iterator:

IPCB_BoardIterator;

c:

IPCB_ObjectClass;

Begin

Iterator:

=Board.BoardIterator_Create;

Iterator.SetState_FilterAll;

Iterator.AddFilter_ObjectSet(MkSet(eClassObject;

c:

=Iterator.FirstPCBObject;

Whilec<>NIlDo

Begin

Ifc.MemberKind=eClassMemberKind_NetThen

GetNetClass.Classes.Items.AddObject(c.Name,C;

c:

=Iterator.NextPCBObject;

End;

End;{......................................................................................................}

{......................................................................................................}ProcedureUnRouteNetClass;

Var

ClassToUnroute:

IPCB_OBjectClass;

Board:

IPCB_Board;

Begin

Pcbserver.PreProcess;

Try

Board:

=PCBServer.GetCurrentPCBBoard;

IfNotAssigned(BoardThen

Begin

ShowMessage('TheCurrentDocumentisnotaProtelPCBDocument.';

Exit;

End;

FillNetClassList(Board;

IfChooseNetClassThen

UnrouteSelectedClasses(Board;

Finally

Pcbserver.PostProcess;

End;

End;{......................................................................................................}

{......................................................................................................}procedureTGetNetClass.ClassesDblClick(Sender:

TObject;

begin

ModalResult:

=mrOK;

end;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1