⊙内容:常用逻辑电路设计

Similar documents
a b c d e f g C2 C1 2

B 6 A A N A S A +V B B B +V 2

D-Type entity D_FF is D :in std_logic; CLK :in std_logic; Q :out std_logic); end D_FF; architecture a of D_FF is process(clk,d) if CLK'EVENT and CLK =

(Microsoft Word - \245\274\244\300\246\250\301Z\260\252\247C13.doc)

IC芯片自主创新设计实验

Microsoft PowerPoint - EDA-理论3 [兼容模式]

VHDL(Statements) (Sequential Statement) (Concurrent Statement) VHDL (Architecture)VHDL (PROCESS)(Sub-program) 2

4.1 VHDL VHDL 4-1 a b & c 4-1 2

2 时序电路的 VHDL 描述 例 2.1 D 触发器的 VHDL 描述最简单 最具有代表性的时序电路是 D 触发器 对 D 触发器的描述包含了 VHDL 对时序电路的最基本和典型的表达方式, 也包含了 VHDL 中许多最具特色的语言现象 D DFF1 Q CLK ( 实体 -Entity)? 电路

数字电子技术与微处理器基础

untitled

<4D F736F F D20BCAFB3C9B5E7C2B7D3EBD6C7C4DCCFB5CDB3B4B4D0C2BBF9B5D8B2E2CAD4CCE22E646F63>

全 省 事 业 单 位 绩 效 考 核 工 作 会 议 在 我 市 召 开 省 编 办 主 任 刘 星 泰 出 席 会 议 并 讲 话 市 委 常 委 副 市 长 赵 豪 志 出 席 会 议 并 致 辞 市 编 办 主 任 盖 九 志 作 典 型 发 言 参 会 人 员 分 组 讨 论

状 态, 使 人 类 社 会 难 以 正 确 认 识 评 级 这 一 信 用 经 济 的 内 在 规 律, 难 以 真 正 总 结 西 方 错 误 评 级 的 教 训, 难 以 让 评 级 有 效 服 务 于 人 类 信 用 经 济 实 践 如 果 我 们 还 不 能 在 信 用 评 级 思 想 领

1 什么是Setup 和Holdup时间?

Word Pro - FPGA设计高级技巧(Xilinx篇).lwp

第3节 VHDL语言的常用语法

Microsoft PowerPoint - 06时序逻辑电路

Microsoft Word - 部分习题参考答案.doc

<4D F736F F F696E74202D20D7BFD4BDB9A4B3CCCAA6D6AE454441BCBCCAF5BCB0D3A6D3C3B5DA34BDB22E BBCE6C8DDC4A3CABD5D>

常用4000系列标准数字电路的中文名称资料

Microsoft Word - EDA2006_A_Answer

untitled

untitled

8.3 模块设计 ⒈ 主体控制模块 控制部分由时序输出及楼选计数器 电梯请求服务处理器 电梯升降控制器 电梯升降寄存器 及电梯次态生成器等组成, 其内部结构如图 8-2 所示 时钟 CLK 时序输出及楼选计数器 (Fd) 上升请求 UP 下降请求 DOWN 楼层选择 FCH 电梯服务 请求处理器 F

新 疆 交 通 建 设 集 团 股 份 有 限 公 司 首 次 公 开 发 行 股 票 辅 导 工 作 进 展 报 告 新 疆 交 通 建 设 集 团 股 份 有 限 公 司 ( 以 下 简 称 新 疆 交 建 发 行 人 或 公 司 ) 拟 申 请 首 次 公 开 发 行 股 票 并 上 市, 公

序言.PDF

目 录 第 一 部 分 前 言...1 第 二 部 分 释 义...3 第 三 部 分 基 金 的 基 本 情 况...9 第 四 部 分 基 金 份 额 的 发 售...12 第 五 部 分 基 金 备 案...14 第 六 部 分 基 金 份 额 的 申 购 与 赎 回...15 第 七 部 分

2013 年 4 月 3 日 拌 嘴 引 发 婆 婆 中 风, 惹 丈 夫 怨 怼 一 年 后, 母 亲 因 丈 夫 失 误 被 撞 倾 诉 / 许 小 会 女 30 岁 记 录 / 盛 蔚 婆 婆 病 了 2011 年 9 月 13 日 晚, 我 彻 夜 未 眠, 守 在 医 院 急 救 室 门

成 都 诗 词 田 正 中 水 调 歌 头 感 丙 戌 金 秋 风 树 生 凉 意, 胸 次 觉 清 新 园 中 丹 桂 撑 月, 雏 菊 傲 霜 芬 情 系 南 飞 北 雁, 坐 爱 枫 林 醉 染, 秋 色 更 迷 人 歌 故 早 相 约, 览 胜 宝 宾 村 巨 龙 腾, 金 风 翥, 气 凌

常 州 市 新 北 区 建 设 工 程


Introduction to Computer Systems /18-243, spring st Lecture, Jan. 12th

了 波 涛 和 号 声 袁 读 者 很 容 易 就 进 入 广 州 城 的 水 上 旅 途 袁 进 入 一 座 野 水 上 名 城 冶 的 传 说 中 去 遥 于 是 袁 一 座 名 城 往 事 充 满 了 漂 流 感 袁 旋 律 自 水 上 而 来 袁 我 们 就 这 样 来 到 了 往 事 的

壹、摘 要

untitled

,,,,,,,,,,,,, :,, ;,,,,, ( ),,,, : ( ) ; ( ) ; ( ) ( ) ; ( ) ( A ) ; ( ) ( ),,,,,,, 80

学年本科教学和思政工作情况汇报

第 一 信 封 详 细 评 审 第 二 信 封 初 步 评 审 (5) 投 标 人 以 联 合 体 形 式 投 标 时, 联 合 体 协 议 书 满 足 招 标 文 件 的 要 求 : 投 标 人 按 照 招 标 文 件 提 供 的 格 式 签 订 了 联 合 体 协 议 书, 并

2013年全国农村妇女科学素质网络竞赛活动总结

目 录 一 概 况... 3 二 针 对 2015 届 毕 业 生 开 展 的 就 业 工 作... 5 三 2015 届 毕 业 生 就 业 情 况 抽 样 调 查 分 析 ( 一 ) 用 人 单 位 类 型 情 况 ( 二 ) 专 业 对 口 率 ( 三 )

Microsoft Word - 梁斌言:2016年度全省职业教育工作会议总结讲话提纲.doc

中 共 广 元 市 食 品 药 品 监 督 管 理 局 党 组 2016 年 机 关 党 的 工 作 要 点 2016 年 是 实 施 十 三 五 规 划 的 开 局 之 年, 是 推 进 全 面 从 严 治 党 的 深 化 之 年, 是 决 胜 脱 贫 攻 坚 的 关 键 之 年 机 关 党 的

“秦火火”玩“火”自焚

简 讯 : 庐 江 县 气 象 监 测 预 警 中 心 主 体 结 构 顺 利 封 顶 肥 西 县 政 府 出 台 乡 镇 气 象 工 作 目 标 管 理 考 核 细 则 庐 江 县 组 织 召 开 乡 镇 气 象 灾 害 防 御 工 作 会 议 长 丰 县 局 积 极 组 织 开 展 无 偿 献

目 录 第 1 章 毕 业 生 就 业 基 本 情 况 沈 阳 化 工 大 学 科 亚 学 院 概 况 毕 业 生 规 模 毕 业 生 结 构 毕 业 生 院 系 分 布 毕 业 生 专 业 分 布

0卷首语.FIT)

版块一 研究生学长对《自然地理学》科目的总结

北 京 化 工 大 学 2014 年 毕 业 生 就 业 质 量 年 度 报 告 高 校 毕 业 生 就 业 工 作 是 教 育 领 域 重 要 的 民 生 工 程, 涉 及 人 民 群 众 切 身 利 益, 关 乎 社 会 和 谐 稳 定 北 京 化 工 大 学 高 度 重 视 毕 业 生 就 业

2014年9月月讯

( 一 ) 毕 业 生 规 模 和 就 业 率 浙 江 警 察 学 院 2014 届 毕 业 生 共 计 542 人, 均 为 本 科 毕 业 生, 其 中 浙 江 省 内 生 源 毕 业 生 516 人, 西 藏 自 治 区 生 源 毕 业 生 26 人 截 至 2014 年 12 月 10 日,

1

就业质量报告工作方案

内 蒙 古 大 学 创 建 于 1957 年, 是 新 中 国 成 立 后 党 和 国 家 在 少 数 民 族 地 区 创 建 最 早 的 综 合 大 学 学 校 1962 年 招 收 研 究 生,1978 年 被 确 定 为 全 国 重 点 大 学,1984 年 获 博 士 学 位 授 权,199

目 录 学 校 概 况... 1 报 告 说 明... 1 第 一 章 毕 业 生 就 业 基 本 情 况... 2 一 毕 业 生 的 觃 模 和 结 构... 2 ( 一 ) 毕 业 生 的 觃 模... 2 ( 二 ) 毕 业 生 结 构... 2 二 就 业 率... 4 ( 一 ) 总 体

目 录 学 校 概 况... 1 报 告 说 明... 1 第 一 章 毕 业 生 就 业 基 本 情 况... 3 一 毕 业 生 的 规 模 和 结 构... 3 ( 一 ) 毕 业 生 的 规 模... 3 ( 二 ) 毕 业 生 结 构... 4 二 就 业 率... 5 ( 一 ) 总 体

南昌职~1

的 通 知 (30) 安 阳 市 人 民 政 府 办 公 室 关 于 印 发 代 市 长 王 新 伟 在 市 长 办 公 会 议 上 讲 话 的 通 知 (33) 大 事 记 安 阳 市 人 民 政 府 大 事 记 (2015 年 11 月 ) (38) 安 阳 市 人 民 政 府 大 事 记 (2

关于成立化学化工学院石油炼制系和应用化学系的通知

<4D F736F F D C4EAD6D0BFBCD3EFCEC4C6C0BCDBD6B8C4CFA3A8B6A8B8E5A3A92E646F63>

中机质协[2016]2

前 言 厦 门 南 洋 职 业 学 院 是 经 福 建 省 人 民 政 府 批 准 正 式 设 立 国 家 教 育 部 备 案 具 有 独 立 颁 发 国 家 承 认 学 历 文 凭 资 格 的 全 日 制 综 合 性 普 通 高 等 院 校, 由 海 内 外 热 心 教 育 的 十 五 位 学 者

目 录

Microsoft Word 职业规划与就业指导正文.doc

Microsoft Word - 会行党_2016_3号.doc

和 工 作 格 局 遵 循 公 正 公 开 便 民 原 则, 建 立 完 善 了 信 息 公 开 的 工 作 制 度 和 工 作 规 范 : 制 订 出 台 了 青 岛 农 业 大 学 信 息 公 开 实 施 细 则 ( 试 行 ), 明 确 了 信 息 公 开 的 内 容 公 开 途 径 和 要

标题

党 建 学 校 党 委 副 书 记 副 校 长 陈 锐 出 席 离 退 休 党 支 部 书 记 座 谈 会 4 月 22 日 下 午, 离 退 休 干 部 工 作 处 在 胜 利 楼 会 议 室 召 开 党 支 部 书 记 座 谈 会 学 校 党 委 副 书 记 副 校 长 陈 锐 出 席 会 议,

令行立即行 上马就扬蹄

一 指 导 思 想 全 面 贯 彻 党 的 十 八 大 和 十 八 届 三 中 四 中 五 中 全 会 精 神, 深 入 学 习 习 近 平 总 书 记 系 列 重 要 讲 话 精 神, 按 照 中 央 和 上 级 政 法 公 安 机 关 关 于 加 强 队 伍 建 设 的 有 关 要 求, 聚 焦

BT-15

国 培 计 划 (2011) 义 务 教 育 骨 干 教 师 远 程 培 训 项 目 骨 干 培 训 者 培 训 工 作 总 结 全 国 中 小 学 教 师 继 续 教 育 网 ( 以 下 简 称 继 教 网 ) 在 国 培 计 划 (2011) 义 务 教 育 骨 干 教 师 远 程 培 训 项

绝版亲情

取 企 业 一 套 表 平 台 收 集 汇 总 整 理 和 提 供 有 关 调 查 的 统 计 数 据, 综 合 整 理 和 提 供 旅 游 科 技 教 育 文 化 卫 生 体 育 社 会 保 障 公 用 事 业 等 全 区 性 基 本 统 计 数 据 6 组 织 实 施 基 本 单 位 能 源 投

Administrator

< C4EAD0C2CEC5B1A8B5C0CCE2C2BC>

标题

有 两 室, 外 加 一 个 很 小 的 房 间 和 一 个 小 厨 房 不 过 在 当 时 的 湖 边 坊, 这 就 相 当 于 一 幢 高 级 别 墅, 非 常 引 人 注 目 和 招 人 嫉 妒 姨 妈 和 姨 父 共 有 三 个 儿 子 和 一 个 女 儿 老 大 夏 天 强 比 我 大 7

金 山 区 青 年 创 新 创 业 示 范 区 的 建 议 进 行 专 门 答 复 朱 波 委 员 提 出, 创 新 创 业 的 主 体 是 青 年, 要 集 聚 教 育 科 研 人 才 资 本 等 各 类 资 源 和 优 势, 加 快 建 设 青 年 创 新 创 业 示 范 区, 在 政 策 体

趋 61 中 国 必 须 创 新 新 教 育 价 值 观 刘 道 玉 64 学 校 常 规 管 理 的 常 与 新 李 瑾 瑜 69 教 育 就 要 宽 柔 养 育 王 立 志 目 录 阅 读 72 全 民 阅 读 应 成 为 国 家 战 略 朱 永 新 77 一 世 读 书 抵 封 侯 陈 先 达

Microsoft Word - 第三期简报1.doc

山东体育学院

标题

目 录 学 校 概 况... 1 报 告 说 明... 2 第 一 章 毕 业 生 就 业 基 本 情 况... 3 一 毕 业 生 基 本 情 况... 3 ( 一 ) 本 与 科 毕 业 生 人 数 不 比 例... 3 ( 二 ) 各 系 毕 业 生 人 数 分 布... 3 ( 三 ) 毕

标题

专业特色、实施过程和效果说明


吉林师范大学博达学院

综合练习与检测八下.tpf

要 惧 让 的 血 族 亲 王 夜 冥 昊 一 座 华 丽 而 又 古 老 的 城 堡 坐 落 在 一 个 开 满 血 色 彼 岸 花 的 地 方, 城 堡 内, 看 不 见 任 何 东 西, 只 能 感 受 到 置 身 在 黑 暗 之 中 那 种 诡 异, 恐 惧 的 气 氛, 这 里 很 黑,

項目詳情書

1 重 要 提 示 基 金 管 理 人 的 董 事 会 及 董 事 保 证 本 报 告 所 载 资 料 不 存 在 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 内 容 的 真 实 性 准 确 性 和 完 整 性 承 担 个 别 及 连 带 责 任 基 金 托 管 人 南 京

南网资审文件范本

第一章.doc

untitled

Microsoft Word 制度汇编-正文.doc

c_cpp

64 [ 46 ] (p297) 1924 :? [ 47 ] (p570) ; ; ; ; ; ; ; ; ; ; ; [ 11 ]; [ 35 ] [ 49 ] [ 32 ] ( ) [ 48 ] (p 425) [ 50 ] (p 670 6

2015 年 水 利 建 设 市 场 主 体 信 用 评 价 结 果 一 勘 察 单 位 ( 共 92 家 ) AAA 级 (48 家 ) 1 中 国 电 建 集 团 北 京 勘 测 设 计 研 究 院 有 限 公 司 2 北 京 市 水 利 规 划 设 计 研 究 院 3 中 水 北 方 勘 测

南京市交通建设投资控股(集团)有限责任公司

Transcription:

内容 : 常用逻辑电路设计一般组合逻辑电路设计 例 2: 全加器设计 一般时序逻辑电路设计 一 一般组合逻辑电路设计 1 概念 : 组合逻辑电路输出只与当前的输入有关, 而与历史状态无关 即组合逻辑电路是无记忆功能电路 2 常见电路 : (1) 基本门电路 ( 与 非 或等 ) (2) 选择电路 (N 选 1 电路等 ) (3) 编码与解码电路 (3-8 电路 7 段显示 ) (4) 加法电路 ( 半加器 全加器 ) (5) 求补码电路 (6) 三态门电路 3 电路应用举例例 1: 半加器设计 输入 输出 x y cin s co 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 ENTITY plus2 IS PORT(x,y,cin: IN std_logic; S,co: out std_logic); 输入 输出 x y s co 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 S= xy+x y=x+y=x or y; Co=xy=x and y. ENTITY plus1 IS PORT(x,y: IN std_logic; S,co: out std_logic); ARCHITECTURE aaa OF plus1 IS S= xy+x y=x+y=x or y; Co=xy=x and y; End; ARCHITECTURE aaa OF plus2 IS Begin Process(a,b,cin) Variable temp: std_logic_vector(2 downto 0) Temp:=x&y&cin; Case temp is When 000 =>s<= 0 ; co<= 0 ; When 001 010 100 =>s<= 1 ; co<= 0 ; When 011 101 110 =>s<= 0 ; co<= 1 ; When 111 =>s<= 1 ; co<= 1 ; When others=>s<= X ; co<= X ; End case; End;

例 3: 求补码电路正数的补码与原码相同, 即最高位为符号位, 用 0 表示正数, 其余位为数值位 负数的补码为它的反码, 且在最底位加 1 形成 如 :[+4] 原 [00000100]b; [+4] 补 [00000100]b; [-4] 原 [10000100]b; [+4] 反 [11111011]b; [+4] 补 [+4] 反 + 1 11111011+00000001 11111100 ENTITY qiubu IS PORT(a: IN std_logic_vector(7 downto 0); b: OUT std_logic_vector(7 downto 0)); ARCHITECTURE aaa OF qiubu IS process(a) if a(7)='0'then b<= a; b<=not a + '1'; 例 4: 三态门电路 三态门电路用途 :1 双向口 2 多路数据竞争 或多路选择电路 输入 DIN, 输出 DOUT 当 EN=1 时,DOUT=DIN; 当 EN=0 时,DOUT=Z; 输入 输入使能 输出 DIN EN DOUT X 0 z 0 1 0 1 1 1 ENTITY TRI_GATE IS PORT(din,en: IN std_logic; dout: OUT std_logic); ARCHITECTURE aaa OF TRI_GATE IS process(din,en) if en='1'then dout<= din; dout<= 'Z';

4 2 线优先编码器 entity encoder is port(in0,in1,in2,in3:in std_logic; out0,out1:out std_logic); end; architecture behave of encoder is signal ou:std_logic_vector (1 downto 0); ou<="11" when in3='1' "10" when in2='1' "01" when in1='1' "00" when in0='1' "00"; out1<=ou(1); out0<=ou(0); end behave; 一位十进制编码器 entity decode is port(in0,in1,in2,in3,in4,in5,in6,in7,in8,in9 : in std_logic; decode:out std_logic_vector(3 downto 0)); end decode; architecture behave of decode is signal s_vec : std_logic_vector(9 downto 0) ; s_vec<=(in9, in8, in7, in6, in5, in4, in3, in2, in1, in0); with s_vec select out_decode<= "1001" when "1000000000", -- 数字 9 "1000" when "0100000000", -- 数字 8 "0111" when "0010000000", -- 数字 7 "0110" when "0001000000", -- 数字 6 "0101" when "0000100000", -- 数字 5 "0100" when "0000010000", -- 数字 4 "0011" when "0000001000", -- 数字 3 "0010" when "0000000100", -- 数字 2 "0001" when "0000000010", -- 数字 1 "0000"when others; -- 数字 0 end behave;

一般组时序辑电路设计 1 概念: 时序逻辑电路输出不仅与当前的输入有关, 与历史状态也有关 即时序逻辑电路是有记忆功能电路 2 常见电路: (1) 触发电路 (D T RS JK 等 ) (2) 寄存器电路 (3) 计数器电路 (4) (5) (6) 2 电路应用举例例 1:T 触发设计 CLK Q X Qn-1 Qn-1 ENTITY tff1 IS PORT(clk: IN std_logic; q: OUT std_logic); ARCHITECTURE aaa OF tff1 IS signal q_n:std_logic; process(clk) if clk='1'and clk' event then q_n<=not q_n ; q<=q_n; 例 2:RS 触发设计 真值表 Qn R S Qn+1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 X 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 X 卡诺图 RS 00 01 11 10 QN 0 0 1 X 0 1 1 1 X 0 Q N+1 =S+ RQ N RS=0 约束条件 ENTITY rs_ff IS PORT(r,s,qn: IN std_logic; qn1: OUT std_logic); ARCHITECTURE aaa OF rs_ff IS --signal qn:std_logic; process(r,s,qn) qn1<=s or (not r and qn) ;

例 3:JK 触发设计 例 4:8 位积存器 74ls374 的设计 j k Qn Qn+1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 Qn+1=J Qn+ K Qn ENTITY jk_ff IS PORT(j,k,qn,clk: IN std_logic; qn1: OUT std_logic); ARCHITECTURE aaa OF jk_ff IS --signal qn:std_logic; process(j,k,qn,clk) if clk'event and clk='1' then qn1<=(not qn and j ) or (not k and qn) ; oe cp d Q 0 0 0 0 1 1 0 0 x 保持 1 x x 高阻 ENTITY register1 IS PORT(d: in std_logic_vector(7 downto 0); oe,clk: in std_logic; q: OUT std_logic_vector(7 downto 0)); ARCHITECTURE aaa OF register1 IS signal q_temp: std_logic_vector(7 downto 0); process(clk,oe) if (oe='1')then q_temp<="00000000"; elsif clk='1' and clk'event then q_temp<=d; q<= q_temp;

例 5: 用 D 触发器器设计 4 位串入 / 并出移位寄存器 例 6: 设计 4 位二进制串入 / 并出同步计数器 计数器 能够记忆时钟信号的时序逻辑电路 还可以进行分频 定时 产生脉冲等信号 ENTITY move_reg IS PORT(a,clk: in std_logic; -- b: out std_logic; q: OUT std_logic_vector(1 to 4)); ARCHITECTURE aaa OF move_reg IS component dff1 port(d,clk:in std_logic; q:out std_logic); end component; signal x: std_logic_vector(0 to 4); x(0)<=a; aa:for i in 0 to 3 generate u: dff1 port map(x(i),clk, x(i+1)); end generate; q<=x(1 to 4); --b<=x(4); -------------------------------------------------------------- R S EN CLK Q3 Q2 Q1 Q0 1 X X X 0 0 0 0 0 1 X 预置值 0 0 1 计数值加 1 0 0 0 X 不变 ENTITY counter4bit IS PORT( reset,clk,set,en: in std_logic; count: out std_logic; q: buffer std_logic_vector(3 downto 0)); ARCHITECTURE aaa OF counter4bit IS process(clk,reset) if (reset='1')then q<=(others=>'0'); elsif clk='1' and clk'event then if (set='1')then q<="1010"; elsif(en='1')then q<=q+1; q<=q; count<='1'when (q="1111"and en='1') '0';

例 7: 用 D 触发器器设计 4 位异步并行输出计数器 低层 D 触发器器设计 ENTITY async_counter4bit IS PORT( clk,reset: in std_logic; count: out std_logic_vector(1 to 4)); ARCHITECTURE aaa OF async_counter4bit IS component async_dff PORT( d,clk,reset: in std_logic; q,qb: out std_logic); end component; signal x :std_logic_vector(0 to 4); x(0)<=clk; shen:for i in 0 to 3 generate aa: async_dff port map (d=>x(i+1),clk=>x(i),reset,q=>count(i+1),qb =>x(i+1)); end generate ; ENTITY async_dff IS PORT( d,clk,reset: in std_logic; q,qb: out std_logic); ARCHITECTURE aaa OF async_dff IS process(clk,reset) if (reset='1')then q<='0'; qb<='1'; elsif clk='1' and clk'event then q<=d; qb<=not d;

四位双向移位寄存器 entity shift is port(clk,rst,load,left_right : in std_logic; -- 时钟 复位 置数 移位控制信号 din : in std_logic_vector(3 downto 0); -- 预置数输入信号 dout : inout std_logic_vector(3 downto 0)); -- 输出信号 end shift; architecture behave of shift is constant len: integer:=3; process (clk,rst,load,left_right,din) if rst= 1 then dout<= 0000 ; -- 异步复位 elsif rising_edge(clk) then if (load='1') then dout<=din; -- 同步置数 elsif (left_right='0') then -- 循环右移 dout<=dout(0)&dout(len downto 1); elsif(left_right='1')then -- 循环左移 dout<=dout(len-1 downto 0)&dout(3); end behave; 同步十进制可逆计数器 entity count is port(clk,rst,load,plus_sub : in std_logic; din: in std_logic_vector(3 downto 0); dout: buffer std_logic_vector(3 downto 0)); end count; architecture behave of count is process(clk,rst,load,plus_sub,din) if (clk'event and clk='1') then if (rst='1') then dout<=(others=>'0'); -- 同步复位 elsif (load='1') then dout<=din; -- 同步置数 elsif (plus_sub='1') then -- 加法计数 if (dout=9) then dout<="0000"; dout<=dout+1; elsif (plus_sub='0') then -- 减法计数 if (dout=0) then dout<="1001"; dout<=dout-1; end behave;

例 8: 设计异步清零的使能的 10 进制计数器 例 9: 计异步清零的使能的 60 进制计数器 ENTITY counter10 IS PORT( reset,clk,en: in std_logic; cout: out std_logic; outy: out std_logic_vector(3 downto 0)); ARCHITECTURE aaa OF counter10 IS signal cnt :std_logic_vector(3 downto 0); process(clk,reset) if (reset='1')then cnt<=(others=>'0'); elsif if (en='1')then if cnt="1001"then cnt<="0000"; cout<='1'; cnt<=cnt+1; cout<='0'; outy<=cnt; clk='1' and clk'event then ENTITY counter60 IS PORT( clr,clk,en: in std_logic; cout: out std_logic; qh: buffer std_logic_vector(3 downto 0); ql: buffer std_logic_vector(3 downto 0)); ARCHITECTURE aaa OF counter60 IS cout<='1'when(qh="0101"and ql="1001"and en='1')'0'; process(clk,clr) if (clr='0')then qh<="0000"; ql<="0000"; elsif clk='1' and clk'event then if (en='1')then if ql=9 then ql<="0000"; if qh=5 then qh<="0000"; qh<=qh+1; ql<=ql+1; --end if (en) --end if (clr)

内容 : 一般实际电路设计 例题 1 如图所示 用 VHDL 语言设计一个 6 分频电路, 要求输出信号的占空比 1:1 例题 2 如图所示 用 VHDL 语言设计一个 16 分频电路, 要求输出信号的占空比 1:1 --p187 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY clk_div6 IS PORT(clk: IN std_logic; clk_out:out std_logic); ----------------------------- ARCHITECTURE beh OF clk_div6 IS signal clk_temp: std_logic; PROCESS(clk) variable counter:integer range 0 to 15;--10; constant md:integer:=2; if (clk'event and clk='1')then if counter=md then counter:=0; clk_temp<=not clk_temp; counter:=counter+1; clk_out<=clk_temp; end beh; LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY clk_div16 IS PORT(clk: IN std_logic; clk_out:out std_logic); ----------------------------- ARCHITECTURE beh OF clk_div16 IS signal clk_temp: std_logic; PROCESS(clk) variable counter:integer range 0 to 15;--10; constant md:integer:=7; if (clk'event and clk='1')then if counter=md then counter:=0; clk_temp<=not clk_temp; counter:=counter+1; clk_out<=clk_temp; end beh;

例题 3 如图所示 用 VHDL 语言设计一个 16 分频电路, 要求输出信号的占空比 1:15 例题 4 如图所示 用 VHDL 语言设计同步 24 进制计数器 ---p188 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY clk_div_16 IS PORT(clk: IN std_logic; clk_out:out std_logic); ----------------------------- ARCHITECTURE beh OF clk_div_16 IS signal counter: std_logic_vector(3 downto 0); p1: PROCESS(clk) if (clk'event and clk='1')then if counter="1111" then counter<=(others=>'0'); counter<=counter+1; p2: PROCESS(clk) if (clk'event and clk='1')then if counter="1111" then clk_out<='1'; clk_out<='0'; end beh; library altera; use altera.maxplus2.all; library lpm; use lpm.lpm_components.all; library std; use std.textio.all; --************************************** entity count24 is port( clk,clr,en:in std_logic; --cy:out std_logic; qh,ql:out std_logic_vector(3 downto 0) ); end count24; --****************************************** architecture a of count24 is signal qh_tmp,ql_tmp:std_logic_vector(3 downto 0); process(clk,clr,en) if clr='0'then qh_tmp<="0000"; ql_tmp<="0000"; elsif clk'event and clk='1'then if en='1' then if ql_tmp=3 then if qh_tmp=2 then ql_tmp<="0000"; qh_tmp<="0000"; ql_tmp<=ql_tmp+1; elsif ql_tmp=9 then ql_tmp<="0000"; qh_tmp<=qh_tmp+1; ql_tmp<=ql_tmp+1; qh<=qh_tmp; ql<=ql_tmp;

end a; 例题 5 如图所示 用 VHDL 语言设计同步 60 进制计数器 library altera; use altera.maxplus2.all; library lpm; use lpm.lpm_components.all; ql_tmp<=ql_tmp+1; --END IF (EN) --END IF(clr) end behavior; library std; use std.textio.all; --library vital; --use vital.vital_timing.all; --use vital.vital_primitive.all; --************************************** entity count60 is port( clk,clr,en:in std_logic; cy:out std_logic; qh,ql:out std_logic_vector(3 downto 0) ); end count60; --****************************************** * architecture behavior of count60 is signal qh_tmp,ql_tmp:std_logic_vector(3 downto 0); qh<=qh_tmp;ql<=ql_tmp; cy<='1'when(ql_tmp="1001"and qh_tmp="0101") '0';--² ÐÐÓï¾äÃèÊö½øλ process(clr,clk,en) if clr='0'then qh_tmp<=(others=>'0');--µè¼ûóëqh_tmp<="0000"; ql_tmp<=(others=>'0'); elsif (clk'event and clk='1')then if en='1'then if (ql_tmp=9)then ql_tmp<="0000"; if(qh_tmp=5)then qh_tmp<="0000"; qh_tmp<=qh_tmp+1;

例题 5 如图所示 用 VHDL 语言设计 9999 计数器, 用动态扫描方式, 其中 CLK1,CLKS( 25Hz) 分别是计数时钟和扫描时钟,SEG[6..0] 和 SEL[3..0] 分别是七段数码管的段码和位选信号 seg<="1000000"when in47=0 "1111001"when in47=1 "0100100"when in47=2 "0110000"when in47=3 "0011001"when in47=4 "0010010"when in47=5 "0000010"when in47=6 "1111000"when in47=7 "0000000"when in47=8 "0010000"; library std; use std.textio.all; library vital; use vital.vital_timing.all; use vital.primitive.all; library altera; use altera.maxplus2.all; use altera.megacore.all; library lpm; use lpm.lpm_components.all; --************************************ ******* entity count99991 is port( clr:in std_logic; clk1,clks:in std_logic; seg:out std_logic_vector(6 downto 0); sel:out std_logic_vector(3 downto 0) ); end count99991; --************************************ ********** architecture a of count99991 is signal in47:integer range 9 downto 0; signal q0_tmp,q1_tmp,q2_tmp,q3_tmp:integer range 9 downto 0; --signal q:integer range 0 to 3; process(clr,clk1,in47) if clr='1'then q0_tmp<=0; q1_tmp<=0; q2_tmp<=0; q3_tmp<=0; elsif clk1'event and clk1='1'then q0_tmp<=q0_tmp-1; if q0_tmp=0 then q1_tmp<=q1_tmp-1; if q1_tmp=0 then q2_tmp<=q2_tmp-1; if q2_tmp=0 then q3_tmp<=q3_tmp-1; process(clks) variable q:integer range 0 to 3; if clks'event and clks='1'then q:=q+1; case q is when 0 => in47<=q0_tmp;sel<="0001"; when 1 => in47<=q1_tmp;sel<="0010"; when 2 => in47<=q2_tmp;sel<="0100"; when others => in47<=q3_tmp;sel<="1000"; end case; end a;