大多数人都生活在缺省状态中

本文探讨了大多数人生活中的模式,以及这些模式如何影响我们的幸福感。文章通过讲述杰米的故事,揭示了我们如何无意识地陷入生活的默认设置,并提出通过重大改变可以显著提升生活质量。
[url]http://kb.cnblogs.com/page/168158/[/url]
杰米生活在中部的一个大城市里。他是一个广告公司的撰稿人,他擅长这个。
  他也善于思考自己的生活,思考如何过的幸福。他有健康保险,有积蓄。很多他的朋友都没有这些。他的女朋友很漂亮。他们从来不吵架。他的老板有幽默感,管理不苛刻,每周五都允许他早走。
  每周周五,包括这周,不像其它日子里一起乘火车回郊区家里,他会步行到市中心的酒馆和朋友们聚会。他会叫 4 瓶啤酒。他的朋友通常陪他待到更晚。
  杰米的女朋友琳达会很准时的在他第三瓶啤酒时赶到。她会和所有的人礼貌的拥抱,和杰米亲吻。当她给自己要了唯一一瓶啤酒时,杰米会要自己最后一瓶啤酒。他们会打车回家,一起做晚饭,在 Netflix 上看一个电影。当看完一个时他们会播放第二关,通常看不完。他们做爱,然后她去洗脸刷牙。当她完事后他再去。
  杰米从来没坐下来想过要生活在中部城市做一名广告词撰写员。当他在给一家科技杂志写稿被解雇时,他的前女友的公司里的两个律师带他晚上出去玩,给他买了 100 美元的酒,并给了他一张现在老板的名片。那晚上很开心。那是 9 年前的事。
  他的朋友都是来自他以前公司的同事。白领,有修养,聪明。如果他们五个人中有一个周五晚上不来酒吧,那他们一周都会有午餐吃了。
  杰米并不是不幸福。他厌倦了,但并不是清楚的意识到这点。随着年纪变老,他的厌倦变成了一种害怕。他没有健康问题,但他无时不刻在担忧。癌症,关节炎,老年痴呆。他 38 岁,不胖不瘦,不要孩子,当认真思考生活之路时,他不知道该如何生活,除了周五。
  两个月后他和琳达将去古巴待 10 天。他恨不得马上能成行。
  ***
  几个星期前,我让每个读者都在评论里写出他们生活中遇到的最大的问题。我之前这样做过——询问你是如何生活的——每一次,我都注意到了两件事。
  头一件事是,每个人都有很大的问题。并不是一时性起的倒苦水,而是持续多年的那种问题。一种成为生活基调的问题,感觉就像是它成了你的身份标志之一。听起来是人们感觉生活中缺少了什么非常重要的东西的普遍存在的现象。
  另外一个事情是,他们基本上会有相同的几个问题:缺少交往,缺少个人自由(钱的原因或家庭状况),缺少自信或自满,或缺少自控。
  我们对日常的感觉,以及每个人生活的质量,都构筑在几个主要的基础之上:我们生活的地方,工作,工作之外我们如何安排自己,那些我们花最多时间一起相处的人。
  只要其中有一个领域出现了重大的改变,就必然会引起我们对生活的感觉和日常生活的质量上的重大变化。很简单,生活不可能再保持不变。
  住在同一个城市,但开始和完全不同的一群人交往玩乐,生活就会发生重大变化。你就会发生改变。干着相同的一份职业,但换个城市,你的生活同样会在某些重要方面发生变化。
  生活也许会变得更好,但也许会变得更糟。除非变化已经发生,你不可能知道结果。这种不确定性已经足够让大多数人走出无聊厌倦的情绪。
  但作为规律,产生厌倦是必然的。日复一日的生活更多的可能是会向好的方向发展,因为这种有意识的改变会提供一种机会,让你观察新的改变后的生活能否和你产生共鸣,给你了寻找新的天使的机会。如果新变化的生活如你所愿,那么,你就向真正适合你的生活、你最理想的幸福生活又靠近了一步。
  如果没有发生共鸣,那么,你将会对你如此热衷去做的事情究竟是什么有了更多的认识。你将更清晰的认识你想得到的东西,你将更加强烈的被它们吸引。如果你离开乡村到城市生活,很不喜欢,那么,那就更加清楚的知道了乡村给你带来的是什么。这是一种进步。你向你真正想要的东西走近了一步。
  在模式中生活
  对于杰米,对于我们大多数人,这四个主要的基础并不是我们有意识的决定的。我们最终从事的事业主要依赖于你刚开始进入职场时找到的几个可选的选择。这段时间很短,这段时间你只知道有限的几个可选项。你选择的是你当时看起来有意义工作。这产生的结果——你今天所做的工作——或多或少是偶然的。
  你的朋友圈也是这样,他们大多数存在于你的生活的缺省环境中。我们大多数人相识的一些奇异的、有鼓舞力的人,都是在偶然中遇到的,一旦我们获得了稳定的朋友圈,我们开始满足,停止积极的寻找那些和我们有相同价值观、相同兴趣的朋友。
  你生活的地方更具有随机性,更难改变,它也许在你的整个生活结构中具有最重要的影响,因为它决定着其它几个方面。你在一个地方出生。如果你迁移了,有可能是为了工作,有可能是因为和某个人的关系。很少人会因为认为在另一个特定的城市生活会更幸福而迁移到另一个城市。人们在寻找能体现自己最大价值的地方生活,或者至少要接近那个地方。但我们大多数人到了 30 岁时,由于在一个地方建立的太稳定的生活,很难会考虑换个地方生活。
  朋友、生活地方、事业,决定着另外一个因素:如何安排你的时间、你的习惯、你的嗜好。你的日常生活,你典型的周六晚上的活动,你的衣橱,你的追求和个人目标,全受那三个因素的影响或制约。如果你碰巧在内布拉斯加州长大,你很可能不会冲浪。但也许冲浪是一种能真正你搅动你激情的运动——如果你有幸能发现它。
  我们生活中的很多事情都遵循着一些规律。我们做什么,和什么人交往,都不知不觉的倾向于那些当前短期内有效的事情和人。活在缺省状态中并没有什么错,也很有必要,但思考一下:这有多怪异,缺省状态中给你带来的工作或朋友都是在偶然中产生的,它们是你理想的目标吗?
  换句话说,我们很少有意识的去决定我们该如何过自己的生活。我们最终只是一辈子生活中某种模式中。
  很有可能,你出生的地方不是最适合你的地方。十有八九,你会在另外一地方找到一个更适合你的邻居,更多的朋友,更好的工作,一个更可取的生活方式。你的满足感和安适感依赖于你的价值观和你实际生活情况的匹配程度。我们没有理由相信它们会偶然的匹配很好。
  我们对生活最自然的一种感觉是,做那些已经习惯了的事,生活在已经习惯了的地方,追求那些已经习惯了的事情。所以,请注意。我很确信,所有大家在评论中提到的大问题、众多的问题,都跟这缺省状态有关,要么是害怕、要么是没想到应该对自己做一些大的改变。
  作为一种文化,我们做了大量的工作来保持某种状态,加强某种状态,合理化它们,防止人们拖拉,但很少人会思考最适合我们的是什么,而做一种重大改变将会带领我们找到它。
  这是什么意思?这是说,如果你是一个普通人,你可以料想到,你生活中的很多现状并不是以一种高效合理的方式构建的,那是一种缺省状态。生活中的某些地方对你来说也许完全是错误的,你也许根本不知道这道门的另一边不知道有多适合你。这也说明,无论何时你认识到生活中有个持久的痛苦根源,你都有可能通过另外一种方式重建生活环境来消除它或极大的削弱它。变化需要巨大,比如放弃你的配偶,或在同一个城市到另外一个地方生活。
  重大改变令人害怕,但认真思考一下——大多数时候,当听到有人谈论起做出一个生活上重大改变,比如换一个城市或换一种工作,一年以后,他们会告诉你改变让他们进入一种更好的状态。他们会告诉你以前的生活是多么不堪。
  这种新的感觉值得你去发现。这种特殊的感觉——伴随重大改变而来的感觉——会让你奇怪为什么会过以前那样的生活。
  如果你还不是很明白,下面这些是要领:
  感觉生活有什么重大缺失,感觉不安,这是人类的典型表现。
  人类的主要生活因素(事业,朋友,习惯,生活地点)是由偶然因素决定的,不是有意为之。
  这种有生活中重大缺失的感觉很可能归咎于你的现状和最适合你的状态之间的不匹配。
  对生活中的这几个基本因素的缺省状态做有意识的重大改变,能巨大的、立即的改变你的生活质量。
  很少有人会这样做。很少有人会主动的寻找他们最合适的城市或邻居或最志同道合的朋友。很多七老八十的人都会维护目前所获得的,因为他们认为生活就是这样的。
  在任何时候,这种对自己生活做重大改变的做法都很难。因为你认为你一直就是这样生活的。改变现状似乎有些荒诞。
  但人是易变的。你从出生到现在几乎完全变成了另外一个人,而经过了一个巨大的改变后,你也许会发现一个比以前更真正的自己。
基于51单片机,实现对直流电机的调速、测速以及正反转控制。项目包含完整的仿真文件、源程序、原理图和PCB设计文件,适合学习和实践51单片机在电机控制方面的应用。 功能特点 调速控制:通过按键调整PWM占空比,实现电机的速度调节。 测速功能:采用霍尔传感器非接触式测速,实时显示电机转速。 正反转控制:通过按键切换电机的正转和反转状态。 LCD显示:使用LCD1602液晶显示屏,显示当前的转速和PWM占空比。 硬件组成 主控制器:STC89C51/52单片机(与AT89S51/52、AT89C51/52通用)。 测速传感器:霍尔传感器,用于非接触式测速。 显示模块:LCD1602液晶显示屏,显示转速和占空比。 电机驱动:采用双H桥电路,控制电机的正反转和调速。 软件设计 编程语言:C语言。 开发环境:Keil uVision。 仿真工具:Proteus。 使用说明 液晶屏显示: 第一行显示电机转速(单位:转/分)。 第二行显示PWM占空比(0~100%)。 按键功能: 1键:加速键,短按占空比加1,长按连续加。 2键:减速键,短按占空比减1,长按连续减。 3键:反转切换键,按下后电机反转。 4键:正转切换键,按下后电机正转。 5键:开始暂停键,按一下开始,再按一下暂停。 注意事项 磁铁和霍尔元件的距离应保持在2mm左右,过近可能会在电机转动时碰到霍尔元件,过远则可能导致霍尔元件无法检测到磁铁。 资源文件 仿真文件:Proteus仿真文件,用于模拟电机控制系统的运行。 源程序:Keil uVision项目文件,包含完整的C语言源代码。 原理图:电路设计原理图,详细展示了各模块的连接方式。 PCB设计:PCB布局文件,可用于实际电路板的制作。
<think> 我们正在讨论Verilog状态机设计中的一个关键问题:是否必须包含缺省状态(default state)。根据引用内容,状态机是一种在有限状态之间转换的时序电路,分为Moore和Mealy两类[^1][^3][^5]。设计状态机时,状态寄存器的改变发生在时钟跳变沿,状态转换由组合逻辑F决定[^3][^5]。 关于缺省状态: 1. **必要性**:在Verilog中,**强烈建议为状态机设置缺省状态**。这不仅是良好的设计实践,也是避免产生锁存器(latch)和确保综合后电路可靠运行的关键措施。 2. **原因分析**: - **避免锁存器**:如果状态机没有覆盖所有可能的输入组合(如未明确列出的状态或非法状态),综合工具可能生成锁存器来保持当前值,导致电路行为不可预测[^4]。 - **初始化确定性**:缺省状态确保上电或复位后状态机进入已知的初始状态(如`IDLE`),避免进入未定义状态[^2][^5]。 - **容错处理**:当状态机因干扰进入非法状态时,缺省状态可将其拉回安全状态(例如通过`default: next_state = IDLE;`)[^4]。 ### 代码示例分析 以下是一个包含缺省状态的Moore型状态机片段: ```verilog parameter IDLE = 2'b00, WORK = 2'b01, DONE = 2'b10; reg [1:0] current_state, next_state; // 状态转移逻辑 always @(*) begin case (current_state) IDLE: next_state = (start) ? WORK : IDLE; WORK: next_state = (done_signal) ? DONE : WORK; DONE: next_state = IDLE; default: next_state = IDLE; // 缺省状态处理 endcase end // 时序逻辑(状态寄存器) always @(posedge clk or posedge rst) begin if (rst) current_state <= IDLE; // 复位时进入初始状态 else current_state <= next_state; end ``` - **关键设计**: - `default: next_state = IDLE` 覆盖了未列出的状态(如`2'b11`)[^4][^5]. - 复位信号`rst`强制状态机返回`IDLE`状态,增强鲁棒性[^2]. ### 缺省状态缺失的风险 若省略缺省状态: ```verilog case (current_state) IDLE: ... WORK: ... // 未覆盖DONE和其他状态 endcase ``` - **综合结果**:生成锁存器保存`next_state`的先前值,导致状态机"卡死"在未定义状态[^4]. - **仿真表现**:仿真时未定义状态可能表现为高阻(`z`)或未知(`x`),难以调试[^2]. ### 结论 设计Verilog状态机时,**必须通过`default`分支或完整覆盖所有状态编码来定义缺省行为**。这符合工业实践标准,可显著提升电路的可靠性和可维护性[^4][^5]. --- ### §§相关问题§§ 1. **如何在Verilog状态机中处理非法状态恢复?** 2. **Moore型与Mealy型状态机在缺省状态设计上有何异同?** 3. **SystemVerilog对状态缺省状态的支持有哪些增强?** 4. **状态缺省状态未覆盖时综合工具会报错吗?** </think> 在Verilog状态机设计中,**强烈建议包含缺省状态(default state)**,这不仅是良好的设计习惯,而且能显著提高电路的可靠性和可维护性。以下是详细分析: ### 一、缺省状态的必要性 1. **避免锁存器生成**: - 当状态机未覆盖所有可能的输入组合时,综合工具会生成锁存器(latch)来保持当前值 - 锁存器会导致: - 时序难以满足(易产生毛刺) - 功耗增加 - 可测试性降低 2. **确保初始状态确定性**: - 缺省状态明确指定复位后的初始状态(如`IDLE`) - 避免上电后进入未定义状态($x$或$z$)[^2][^5] 3. **处理非法状态**: - 当状态寄存器因干扰进入非法编码时(如3位状态机的`3'b111`) - 缺省状态可强制返回安全状态(如`default: next_state = IDLE;`)[^4] ### 二、缺省状态实现方式 #### 推荐写法(完整覆盖所有状态): ```verilog parameter IDLE = 2'b00, WORK = 2'b01, DONE = 2'b10; reg [1:0] state, next_state; always @(*) begin // 组合逻辑 case(state) IDLE: next_state = (start) ? WORK : IDLE; WORK: next_state = (done_sig) ? DONE : WORK; DONE: next_state = IDLE; default: next_state = IDLE; // 关键缺省处理 endcase end always @(posedge clk or posedge rst) begin // 时序逻辑 if(rst) state <= IDLE; else state <= next_state; end ``` #### 危险写法(未处理缺省状态): ```verilog case(state) IDLE: ... WORK: ... // 缺少DONE和其他状态处理 endcase // 综合后可能生成锁存器! ``` ### 三、缺省状态设计规范 1. **状态编码策略**: - 推荐使用独热码(one-hot):$n$个状态用$n$位表示 $$S_0=4'b0001,\ S_1=4'b0010,\ S_2=4'b0100,\ ...$$ - 二进制码需显式处理所有$2^n$种组合[^3] 2. **复位初始化**: - 时序逻辑中必须包含复位路径: ```verilog always @(posedge clk or posedge rst) if(rst) state <= IDLE; ``` 3. **完整状态覆盖**: - 使用`full_case`综合指令(谨慎使用): ```verilog case(state) // synthesis full_case ... endcase ``` ### 四、缺省状态缺失的后果 | 场景 | 风险 | |---------------------|----------------------------------------------------------------------| | 仿真阶段 | 未覆盖状态显示`x`,可能掩盖设计缺陷 | | 综合阶段 | 生成锁存器,导致静态时序分析失败 | | 芯片工作 | 电磁干扰使状态机进入非法状态,导致系统死锁 | | 可靠性认证(ISO 26262) | 无法通过故障注入测试[^4] | > 📌 **关键结论**:Verilog状态机**必须包含缺省状态**处理,这是工业级设计的强制要求。它确保状态机在异常条件下能安全恢复,避免不可预知的电路行为[^5]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值